حسن عسکری
حسن عسکری
خواندن ۲ دقیقه·۶ ماه پیش

database:Eloquent model and db in laravel


روش های اینزرت در دیتا بیس لاراول

$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();

میاد همه کاربر هارو میگیره حالا چک میکنه خوب هر پست و هر کامنتی یه یوزر ایدی داره که معلوم میکنه مال کدوم کاربره

بوسیله اون میاد همه پست ها و کامنت های هر کاربر رو هم برمیگردونه

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