10 ویژگی Eloquent که شاید نمی دانستید
۱#. نام ستون زمانی سفارشی شده
—————————–
به طور پیشفرض مدلهای لاراول دارای یک created\_at و یک updated\_at هستند.
با تعریف یک متغیر ثابت در مدل خود میتوانید این نام ستونها را بازنویسی کنید.
اگر شما اطلاعات خود را Soft Delete میکنید میتوانید نام ستون deleted\_at را نیز بازنویسی کنید.
“`
class User extends Model
{const CREATED\_AT = «created»;
const UPDATED\_AT = «last\_update»;
const DELETED\_AT = «removed»;}
“`
۲#. خاصیت Exists
—————-
خاصیت exist نشان میدهد که آیا این شی در پایگاه داده وجود دارد یا نه.
هنگامی که شما یک مدل جدید ایجاد میکنید، ویژگی موجود روی false تنظیم میشود. پس از ذخیره یا بازیابی مدل از پایگاه داده، ویژگی موجود روی true تنظیم میشود.
“`
$user = new User;
$user->name = «George»;
$user->email = «george@example. com»;
$user->password = «secret»; $user->exists; // false$user->save(); $user->exists; // true
“`
۳#. Dirty
———
برای بررسی اینکه آیا مدلی از زمان بازیابی آن از پایگاه داده ویرایش شده است، میتوانید از روش isDirty استفاده کنید.
خوب است بدانید که وقتی یک مدل ذخیره نمیشود، isDirty مقدار True بازمیگرداند. این روش یک پارامتر اختیاری دارد که باعث میشود بتوان dirty بودن یک خاصیت را بررسی کرد.
از متد getDirty میتوان برای بدست آوردن آرایهای از تمام خصوصیاتی که Dirty هستند استفاده کرد.
“`
$user = User::first();$user->isDirty(); // false$user->name = «James»;
$user->isDirty(); // true
$user->isDirty («email»); // false
$user->isDirty («name»); // true
$user->getDirty(); // \[\”name\” => \”James\”\]
“`
۴#. Original
————
برای گرفتن ویژگیهای دست نخورده مدل میتوانید از getOriginal استفاده کنید.
این متد یک پارامتر اختیاری دارد که میتوانید مقدار اصلی یک ویژگی را بدست آورید.
“`
$user = User::first();
$user->name = «James»;
$user->getOriginal(); // Array with «name» => «George»
$user->getOriginal («name»); // «George»
“`
۵#. شبیهسازی یک مدل
——————–
شبیهسازی یک مدل مثل تکه کردن یک کیک است، برای این کار میتوانید از متد replicate استفاده کنید.
“`
$user = User::first();
$clonedUser = $user->replicate();
“`
۶#. یک مدل یا مجموعه را به آرایه تبدیل کنید
——————————————-
toArray میتواند یک مدل یا مجموعه را به یک آرایه PHP ساده تبدیل کند.
“`
// Convert a model instance to an array
$user = User::first();
$user->toArray(); // Convert a collection to an array
$users = User::all();
$users->toArray();
“`
۷#. تازهسازی
————-
متد refresh با دریافت دادههای تازه از پایگاه داده، مدل را تازه میکند.
“`
$user= User::where(‘name’, «George» )->first();
$user->name= «James»;
$user->address->city = «New York»; $user->refresh(); $user->name; // «George»
$user->address->city; // «Washington»
“`
۸#. Without events
——————
بعضی اوقات میخواهید بدون اجرای هرگونه رویدادی، مدلی را ایجاد یا به روز کنید. در لاراول میتوان بدون اجرای هرگونه رویداد یک پاسخ از اجرای یک رویداد میتوان دریافت کرد.
“`
$user = User::withoutEvents(function () {return factory (User::class)->create();} )؛
“`
۹#. فشار دادن
————-
متد push مدل و تمام روابط آن را ذخیره میکند.
“`
$user = User::where(‘name’, «George» )->first();
$user->age = ۴۲;
$user->address->city = «New York»;
“`
اگر شما فقط متد save را صدا بزنید این آدرس ذخیره نمیشود.
“`
$user->save();
“`
اما با استفاده از متد push یوزر و آدرس ذخیره میشود.
“`
$user->push();
“`
۱۰#. حذف یک مدل soft delete
—————————
در بعضی شرایط میخواهید یک مدل نرم حذف شده را از پایگاه داده خود حذف کنید. با استفاده از روش Force Delete میتوان این کار را انجام داد.
“`
$user = User::first();
$user->forceDelete();
“`
این هم از ۱۰ ویژگی که میخواستم در مورد آنها با شما صحبت کنم. لطفاً نظرات خود را در مورد این مقاله به اشتراک بگذارید. حتماً سایر پستهای من را نیز بررسی کنید، در صورت تمایل میتوانید نظر دهید.
