arshia
3 سال پیش توسط arshia مطرح شد
6 پاسخ

مدل در لاراول

سلام خسته نباشید
دوستان در مدل های لاراول غیر از متد هایی که برای روابط مینویسیم دیدم یه سریا میان یه سری پراپرتی و متد دیگه مینویسن
چرا اینکارو میکنن دلیلش چیه ؟
آموزشی براش سراغ دارین ؟
@asp.gosk
@Nima.nori
@endworld
@Wolfy
@ehsndvr
@milwad
@mhyeganeh
@fakhraddin


ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

بهترین آموزش و مرجع مستندات خود لاراول هست. هر کدوم از متد ها و پراپرتی ها هم مورد مصرف خودشون رو دارند.
مثلا چند نمونه زیر:

برای تغییر نام جدول مرتبط با مدل:

protected $table = 'my_flights';

برای تعریف یک PK کاستوم:

protected $primaryKey = 'flight_id';

برای غیرفعال کردن مکانیزم timestamp و فیلدهای created_at و updated_at:

public $timestamps = false;

برای cast کردن attribute ها:

protected $casts = [
    'is_admin' => 'boolean',
];

برای اضافه کردن scope و استفاده راحت تر موقع تعریف کوئری:

public function scopePopular($query) {
    return $query->where('votes', '>', 100);
}

و کلی چیزهای دیگه مثل Accessor ها و Mutator ها و ... که توضیحات کامل و مثال هاش رو اینجا می تونی بخونی:
https://laravel.com/docs/9.x/eloquent
https://laravel.com/docs/9.x/eloquent-mutators


میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
1

سلام خسته نباشید
ببین خب مثلا برای محصولات هر بار میخوای بیای بزنی number_format تا مثلا سه تا سه تا رقم قیمت جدا کنه ولی میاد تو مدل میزاره
برای توضیح خیلی میشه حرف شد ولی مدل خیلی جاها کمکش میکنه که بدون دادن id و ... بتونی دسترسی داشته باشی


arshia
@arshia.azrn 3 سال پیش آپدیت شد
0

درست متوجه نشدم رفیق
آموزشی برای اینکار سراغ داری ؟
@milwad


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

بهترین آموزش و مرجع مستندات خود لاراول هست. هر کدوم از متد ها و پراپرتی ها هم مورد مصرف خودشون رو دارند.
مثلا چند نمونه زیر:

برای تغییر نام جدول مرتبط با مدل:

protected $table = 'my_flights';

برای تعریف یک PK کاستوم:

protected $primaryKey = 'flight_id';

برای غیرفعال کردن مکانیزم timestamp و فیلدهای created_at و updated_at:

public $timestamps = false;

برای cast کردن attribute ها:

protected $casts = [
    'is_admin' => 'boolean',
];

برای اضافه کردن scope و استفاده راحت تر موقع تعریف کوئری:

public function scopePopular($query) {
    return $query->where('votes', '>', 100);
}

و کلی چیزهای دیگه مثل Accessor ها و Mutator ها و ... که توضیحات کامل و مثال هاش رو اینجا می تونی بخونی:
https://laravel.com/docs/9.x/eloquent
https://laravel.com/docs/9.x/eloquent-mutators


فخرالدین لنگی
تخصص : برنامه نویس وب، آندروید و سیست...
@fakhraddin 3 سال پیش آپدیت شد
0

@arshia.azrn
با سلام و وقت بخیر ضمن تبریک سال نو به همگی
دوست گرامی ما توی مدل ها به صورت معمول پنج تا ویژگی یا فانکشن داریم که البته بیشتر از این پنج مورده ولی متداول هاش اینا هر کدوم رو با ذکر مثالی بهش اشاره می کنم:

  1. یکی از ویژگی ها باعث تعریف یا تغییر توی ساختار جدول دیتابیس یا مدلمون می شن مثلا این مدل مربوط به کدوم جدوله table یا فلان ستون چه ساختاری داشته باشه casts یا این مدل چه ستون هایی داره fillable
  2. یکی سری این توابع باعث می شن که شما بتونی یک عملیاتی رو روی ورودی و خروجی انجام بدی و اون رو به صورت ویژه به یکی از ستون ها اختصاص بدی مثلا یک ستون دارم به اسم price و می خوام وقتی که می خوام خروجی بگیرم به صورت هزارگان جدا جدا نمایش بده
    get[CellName]Attribute یا set[CellName]Attribute
  3. یک سری از این توابع باعث می شن که از تکرار یا طولانی شدن کد جلوگیری بشه مثل scope که ممکنه شما یک سری شروط داشته باشی که تقریبا چندجا تکرار شده به جای اینکه همون شروط تکراری رو چند جا کپی کنید راحت یک اسکوپ می نویسید و توی بقیه قسمت ها فقط اسکوپ و پارامتر براش ارسال می کنید
  4. یک سری از این توابع برای برقراری روابط بین مدل هاست حالا روابع یک به یک، یک به چند، چند با چند و ... مثلا belongsTo
  5. در نهایت یک سری توایع هستن که شما خودتون می نویسید و برای خلاصه نویسی یا خوانایی بالاتر کد یا از همه مهمتر تکرار بیش از اندازه کد می نویسید
    بازم نکته یا بخشی گنگ یا نامفهوم بود بفرمایید که بیشتر توضیح بدم

میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
0

سلام خسته نباشید
ببین دوره هنوز من چیزی ندیدم چون خودم دو ساله که دوره نمیبینم
مفهموم که سادس بعضی از کار هارو میبرن تو مدل دلیلش اینکه مثلا توی لیست محصولات میخوان برای وضعیت هایی که تایید هستن رنگ سبز داشته باشه برای برای تایید نشده از رنگ قرمز استفاده کنن برای اینکار از مدل استفاده میکنن
@arshia.azrn


arshia
@arshia.azrn 3 سال پیش مطرح شد
0

@mhyeganeh
ممنون اقای یگانه اون تیکه اخر که برای scope مثال زدین به چیزی که دنبالشم بیشتر نزدیک بود 🌹


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام