📊 مدلها در لاراول
مدلها در لاراول به عنوان نمایندهای از جداول پایگاه داده عمل میکنند و به شما این امکان را میدهند که با دادهها بهصورت ساده و با استفاده از Eloquent ORM کار کنید. در این مقاله، روشهای مختلف استفاده از مدلها، عملیات پایهای و روابط بین مدلها را بررسی خواهیم کرد.
1. 🛠 تعریف مدل در لاراول
برای تعریف یک مدل در لاراول، میتوانید از دستور artisan make:model استفاده کنید. به عنوان مثال، برای ایجاد مدل Post، دستور زیر را اجرا کنید:
این دستور یک کلاس مدل به نام Post در پوشه app/Models ایجاد میکند.
2. 🏷 اتصال مدلها به جداول پایگاه داده
لاراول به طور پیشفرض نام جدول را از مدل شما به صورت جمع بهدست میآورد. برای مثال، مدل Post به طور پیشفرض به جدول posts متصل میشود. اگر نام جدول شما متفاوت باشد، میتوانید آن را در مدل مشخص کنید:
3. ⚙️ ویژگیهای مدل در لاراول
برای کنترل ویژگیهای مدل، میتوانید از ویژگیهای مختلف مانند fillable، guarded و timestamps استفاده کنید.
ویژگیهای پرشده ($fillable):
این ویژگی تعیین میکند که کدام فیلدها میتوانند بهطور جمعی پر شوند.
ویژگیهای محافظتشده ($guarded):
این ویژگی فیلدهایی را که نمیتوانند بهطور جمعی پر شوند مشخص میکند.
تایماستمپها ($timestamps):
اگر میخواهید از تایماستمپها (مثل created_at و updated_at) استفاده نکنید، میتوانید آنها را غیرفعال کنید.
4. 🔄 عملیات پایهای با مدلها
ذخیره دادهها
برای ذخیره دادهها در مدل، میتوانید از متد save() استفاده کنید:
بهروزرسانی دادهها
برای بهروزرسانی دادهها:
حذف دادهها
برای حذف دادهها:
5. 📈 عملیات پیشرفته با Eloquent
لاراول اجازه میدهد تا پرسوجوهای پیچیدهتری با استفاده از Eloquent ORM انجام دهید.
جستجو با شرایط
مرتبسازی دادهها
استفاده از شرطهای مختلف
گرفتن یک نتیجه
6. 🔗 روابط بین مدلها
لاراول روابط مختلفی را بین مدلها پشتیبانی میکند. این روابط شامل یک به یک (One-to-One)، یک به چند (One-to-Many) و چند به چند (Many-to-Many) هستند.
رابطه یک به یک (One-to-One)
در مدل User:
در مدل Profile:
رابطه یک به چند (One-to-Many)
در مدل Post:
در مدل Comment:
رابطه چند به چند (Many-to-Many)
در مدل Student:
در مدل Course:
7. 🔎 استفاده از Scopeها
Scopeها در لاراول به شما این امکان را میدهند که فیلترهای قابل استفاده مجدد برای مدلها ایجاد کنید. به عنوان مثال، یک scope برای جستجوی پستهای منتشر شده:
سپس میتوانید از این scope در پرسوجوها استفاده کنید:
نتیجهگیری
مدلها در لاراول به شما این امکان را میدهند که بهراحتی با پایگاه داده تعامل داشته باشید. با استفاده از Eloquent ORM میتوانید عملیات CRUD را به سادهترین شکل ممکن انجام دهید و روابط پیچیده بین جداول را به راحتی مدیریت کنید.