روش های اینزرت در دیتا بیس لاراول
$user = User::create([ 'name' => 'John Doe', 'email' => 'johndoe@example.com', 'password' => 'password', ]);
مزایا:
استفاده اسان
مختصر و خوانا
نیاز به ایجاد یک شی جدید از مدل ندارد
معایب:
انعطاف پذیری کمتر
برای سناریو های پیچیده مناسب نیست
$user = new User; $user->name = 'John Doe'; $user->email = 'johndoe@example.com'; $user->password = 'password'; $user->save();
مزایا:
انعطاف پذیری بیشتر
کنترل بیشتر در فرایند درج
معایب :
کد طولانی تر
خوانایی کمتر
DB::insert('users', [
'name' => 'John Doe',
'email' => 'johndoe@example.com',
'password' => 'password',
]);
مزایا :
حداکثر کارایی هر کاری بخوای انجام بدی دستت بازه
برای کوئری های خام sql مناسبه
معایب :
خوانایی کمتر
دیگه مزایای استفاده از ORM رو نداری
نگهداری دشوار تر
حالا میخوام متد های که بیشتر استفاده میشه توی مدل ها رو به صورت خلاصه بگم
متد های ایجاد:
اولی create که نمونه شو بالا گفتم ایجاد رکورد جدید در دیتا بیس
دومی forceCreate به هر قیمتی شده رکورد جدید رو میسازه حتی اگه یونیک باشه
متد های خواندن :
اولی all همه رکورد های اون جدول رو به عنوان یه شی از مدل برمیگردونه
دومی find ایدی رو بهش میدی پیداش میکنه به عنوان یه شی از مدل برمیگردونه
سومی whereفیلتر کردن اطلاعات بر اساس معیار هایی که ما بهش میدیم
چهارمی first اگه بعد از where بزاریم اولین رکوردی که با اون معیار مطابقت داره رو برمیگردونه اگه روی خود جدول بزاریم اولین رکورد جدول رو برمیگردونه
پنجمی get مجموعه ای از رکورد هایی که با معیار where مطابقت دارن رو به عنوان یه شی از مدل برمیگردونه
متد های بروزرسانی :
اولی update رکورد موجود رو با مقادیر جدید بروز رسانی میکنه
دومی save رکورد رو ذخیره میکنه چه جدید باشه چه موجود باشه
متد های حذف :
اولی delete رکورد مورد نظر را حذف می کند
دومی forceDelete همه اطلاعات رو به صورت دائم حذف میکنه حتی محافظت شده هارو
سومی softDeletes فیزیکی حذف نمیکنه فقط اونارو روی حالت حذف شده قرار میده
متد های مربوط به کوئری ها :
اولی orderBy مرتب کردن اطلاعات بر اساس ستون های خاص
دومی limit تعداد رکوردی که ما میخوایم رو برمیگردونه
سومی skip مثلا میگه این ۱۰ تا رکورد اول رو نادیده بگیر بقیه رو بده
چهارمیselect ستون هایی که میخوایم ازش اطلاعات بگیریم رو مشخص میکنیم
این مورد پنجم with کار جوین رو میکنه نیاز داره بیشتر توضیح بدم
فرض کنید یه مدل یوزر دارید که با جدول پست و کامنت ارتباط داره حالا میخوایم همه کاربر هارو به همراه پست ها و کامنت هاشون بگیریم چجوری باید این کارو بکنیم؟ دقت کنید که اول باید رابطه رو برقرار کنید بعد از این کد استفاده کنید
$users = User::with('posts', 'comments')->get();
میاد همه کاربر هارو میگیره حالا چک میکنه خوب هر پست و هر کامنتی یه یوزر ایدی داره که معلوم میکنه مال کدوم کاربره
بوسیله اون میاد همه پست ها و کامنت های هر کاربر رو هم برمیگردونه