TGViewer
| کانال توسعه‌دهندگان لاراول | | کانال توسعه‌دهندگان لاراول | @developixlaravel · 1.54K subscribers
Post #87 631
فصل چهار - مدل‌ها و Eloquent ORM

بخش دوم - مدل ها - قسمت اول


برای ایجاد یک مدل، کافی است دستور زیر اجرا کنید:
php artisan make:model User


این دستور یک فایل جدید به نام User.php در پوشه app/Models ایجاد می‌کند که به شکل زیر است:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
//
}


هر مدل در لاراول به صورت پیش‌فرض به یک جدول پایگاه داده مرتبط است. لاراول با استفاده از قواعد نامگذاری، نام جدول را از نام مدل استخراج می‌کند. به طور مثال، مدل User به جدول users متصل می‌شود.
نام مدل باید به صورت مفرد (User) و نام جدول به صورت جمع (users) باشد.

اگر نام جدول شما متفاوت باشد، می‌توانید آن را به صورت دستی مشخص کنید:
class User extends Model
{
protected $table = 'table_name';
}


لاراول یک ویژگی امنیتی به نام Mass Assignment Protection دارد که به شما اجازه می‌دهد فیلدهایی که می‌توانند به صورت گروهی پر شوند را مشخص کنید. این کار با استفاده از ویژگی $fillable انجام می‌شود:
class User extends Model
{
protected $fillable = ['name', 'email', 'password'];
}


با استفاده از این ویژگی، فقط فیلدهای name، email و password می‌توانند به صورت گروهی پر شوند. این کار مانع از حملات احتمالی امنیتی می‌شود.

از این پس می توانید با استفاده از کلاس User با جدول users ارتباط برقرار کنید.

در این قسمت با متد های اصلی برای عملیات CRUD آشنا می شویم.

1- متد all
متد all تمام رکوردهای یک جدول را برمی‌گرداند. این متد بدون هیچ شرطی، تمامی رکوردها را برمی‌گرداند.

$users = User::all();


این کد تمامی رکوردهای جدول users را برمی‌گرداند. به خاطر داشته باشید که اگر تعداد رکوردها زیاد باشد، استفاده از این متد می‌تواند به عملکرد پایگاه داده آسیب بزند.

2- متد find
متد find برای یافتن یک رکورد بر اساس مقدار کلید اصلی (Primary Key) آن استفاده می‌شود. این متد یک رکورد را به عنوان شیء مدل بازمی‌گرداند یا اگر رکوردی پیدا نشود، مقدار null برمی‌گردد.

$user = User::find(1);


این کد کاربری با id برابر با ۱ را از جدول users پیدا می‌کند.

3- متد where
متد where برای اضافه کردن شرط به پرس و جو استفاده می‌شود. این متد یک یا چند شرط را برای محدود کردن نتایج اعمال می‌کند.

$adultUsers = User::where('age', '>', 18)->get();


این کد تمام کاربرانی که سن آن‌ها بالاتر از ۱۸ سال است را برمی‌گرداند.
می‌توان از چندین شرط where پشت سر هم استفاده کرد:
$filteredUsers = User::where('status', 'active')->where('age', '>', 18)->get();


این کد کاربرانی را برمی‌گرداند که هم فعال هستند و هم سن آن‌ها بالاتر از ۱۸ سال است.
نکته: به طور پیشفرض اگر دو پارامتر به متد where داده شود از اپراتور = استفاده می کند، مگر ذکر شود.

4- متد orWhere
متد orWhere برای اضافه کردن شرط‌های OR به پرس و جو استفاده می‌شود. این متد در جایی به کار می‌رود که می‌خواهیم نتایج با یکی از شرط‌ها تطابق داشته باشند.

$users = User::where('status', 'active')->orWhere('age', '>', 18)->get();


این کد کاربرانی را برمی‌گرداند که یا فعال هستند یا سن آن‌ها بالاتر از ۱۸ سال است.

5- متد get
متد get برای بازیابی مجموعه‌ای از رکوردها با شرایط خاص استفاده می‌شود. این متد بعد از استفاده از یک یا چند متد شرطی (مانند where و غیره) به کار می‌رود و نتایج را به صورت یک Collection برمی‌گرداند.

6- متد delete
متد delete برای حذف یک رکورد یا چندین رکورد از پایگاه داده استفاده می‌شود. برای حذف یک رکورد، ابتدا باید آن را پیدا کرده و سپس متد delete را روی آن اجرا کنیم.
$user = User::find(1)->delete();


این کد کاربری با id برابر با ۱ را از جدول users حذف می‌کند.

7- متد update
متد update برای به‌روزرسانی یک یا چند فیلد از یک رکورد استفاده می‌شود.
User::find(1)->update([
"username" => "John Smith"
]);

این کد نام کاربری با id برابر با ۱ را به 'John Smith' تغییر می‌دهد.

متد create:
متد create برای ایجاد یک رکورد جدید در پایگاه داده استفاده می‌شود. این متد به یک آرایه از داده‌ها نیاز دارد که باید با ویژگی‌های $fillable مدل تطابق داشته باشند.
$user = User::create([
'name' => 'Alice Doe',
'email' => 'alice@example.com',
'password' => bcrypt('password123')
]);

این کد یک رکورد جدید با موارد داده شده ایجاد می کند.

در قسمت های بعدی با سایر متد ها آشنا می شویم.

🔖 #Laravel, #PHP, #لاراول, #فصل_۴

👤 AmirHossein

💎 Channel: @DevelopixLaravel
  • ❤ 6
  • 👍 1
  • 🔥 1
More from @developixlaravel
  1. Oct 1, 2026روابط پایگاه داده چند ریختی یا Eloquent Polymorphic در لاراول - قسمت اول در لاراول، روابط…
  2. Sep 30, 2026مدیریت همزمانی و قفل‌گذاری روی پردازش‌ها در لاراول (Laravel Atomic Locks) در بخش چهارم از…
  3. Sep 26, 2026🔥 پکیج: ورود با حساب‌های دیگر؛ Socialite برای اضافه‌کردن ورود با حساب‌های دیگر به پروژه ل…
  4. Sep 25, 2026🔒 فقط داده‌های تأییدشده را ذخیره کن وقتی یک فرم ویرایش پروفایل داری، ممکن است کلاینت علاو…
  5. Sep 20, 2026حفاظت از پردازش ها با Laravel Rate Limiter بخش سوم - پیکربندی در قسمت سوم از مجموعه آموزش…
  6. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →