10 ویژگی پنهان لاراول Eloquent که ممکن است ندانید

میلاد مروتی

میلاد مروتی

موسس تمیکس و توسعه دهنده وب - حوزه فعالیت و علایق : php-Laravel-Js-Vue-Mobile App

10 ویژگی پنهان لاراول Eloquent که ممکن است ندانید

در این مقاله می خواهیم شما را با 10 ویژگی پنهان لاراول آشنا کنیم پس تا انتهای این مقاله با ما همراه باشید

لاراول یک فریمورک با ویژگی های غنی است. با این حال، شما نمی توانید تمام ویژگی های موجود را در اسناد رسمی پیدا کنید. در اینجا چند ویژگی وجود دارد که ممکن است ندانید.

 

  1. ویژگی های اصلی را دریافت کنید

پس از ثبت یک رکورد در دیتابیس می توانید با فراخوانی آن ویژگی های اصلی را دریافت کنید

$user = App\User::first();
$user->name; //milad
$user->name = “Peter”; //ali
$user->getOriginal(‘name’); //milad
$user->getOriginal(); //Original $user record

  1. بررسی کنید که آیا مدل تغییر کرده است

تعیین کنید که آیا مدل یا ویژگی داده شده با استفاده از ()isDirty اصلاح شده است یا خیر.

$user = App\User::first();
$user->isDirty(); //false$user->name = “Peter”;
$user->isDirty(); //true

همچنین می توانید بررسی کنید که آیا یک ویژگی خاص تغییر کرده است یا خیر.

$user->isDirty(‘name’);    //true
$user->isDirty(‘age’);     //false

  1. ویژگی های تغییر یافته را دریافت کنید

بازیابی ویژگی های تغییر یافته یک مدل با استفاده از getChanges()

$user->getChanges()//[
“name” => “Peter”,
]

توجه: تغییرات تنها در صورتی اعمال  می‌شوند که مدل را ذخیره کنید یا تغییرات را با استفاده از syncChanges() همگام‌سازی کنید.

  1. ستون deleted_at سفارشی

به‌طور پیش‌فرض، لاراول حذف‌های نرم‌ را با استفاده از ستون deleted_at مدیریت می‌کند. شما می توانید این مورد را با تعریف صریح ویژگی DELETED_AT تغییر دهید.

class User extends Model
{
use SoftDeletes;

* The name of the “deleted at” column.
*
* @var string
*/
const DELETED_AT = ‘is_deleted’;
}

 

یا با تعریف اکسسوری.

 

class User extends Model
{
use SoftDeletes;

public function getDeletedAtColumn()
{
return ‘is_deleted’;
}
}

  1. مدل ها و روابط را ذخیره کنید

شما می توانید یک مدل و روابط مربوط به آن را با استفاده از متد push() ذخیره کنید.

class User extends Model
{
public function phone()
{
return $this->hasOne(‘App\Phone’);
}
}$user = User::first();
$user->name = “Peter”;$user->phone->number = ‘1234567890’;$user->push(); //

رکورد کاربر و تلفن را در DB به روز می کند

 

  1. مدل تازه را بارگیری مجدد کنید

بارگیری مجدد یک نمونه مدل تازه از پایگاه داده با استفاده از fresh()

 

$user = App\User::first();
$user->name;               // milad//

 

دادی کاربر بروز می شود و به یک نام دیگر تغییر می کند  // ali

$updatedUser = $user->fresh();
$updatedUser->name;       // milad

$user->name;              // ali

 

  1. بارگذاری مجدد مدل موجود

شما می توانید یک مدل موجود را با مقادیر تازه از پایگاه داده با استفاده از refresh() بارگذاری مجدد کنید.

$user = App\User::first();
$user->name;               // ali

// user record get updated by another thread. eg: ‘name’ changed to

$user->refresh(); // milad.

$user->name;              // milad

توجه: refresh() نیز روابط بارگذاری شده مدل موجود را به روز می کند.

8. بررسی کنید که آیا مدل ها یکسان هستند یا خیر

با استفاده از is() تعیین کنید که آیا دو مدل شناسه یکسانی دارند و به یک جدول تعلق دارند یا خیر.

 

$user = App\User::find(1);
$sameUser = App\User::find(1);
$diffUser = App\User::find(2);$user->is($sameUser);       // true
$user->is($diffUser);       // false

9. یک مدل را شبیه سازی کنید
شما می توانید یک مدل را با استفاده از replicate() کلون کنید. یک کپی از مدل را در یک نمونه جدید و غیر موجود ایجاد می کند.
 
$user = App\User::find(1);
$newUser = $user->replicate();$newUser->save();

. مشخصه ها را در متد find() مشخص کنید 

هنگامی که از متدهای find() یا findOrFail() استفاده می کنید، می توانید ویژگی هایی را برای انتخاب به عنوان آرگومان دوم مشخص کنید.


$user = App\User::find(1, ['name', 'age']);
$user = App\User::findOrFail(1, ['name', 'age']);

با نظرات خود ما را خوشحال کنید 🥰

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بیایید صحبت کنیم !

تماس :

09112289685

ساعت پاسخگویی 9 الی 13

ایمیل :

themixteam2020@gmail.com

شبکه های اجتماعی:

تمام حقوق متعلق به شرکت رسا فناوران نادین خلاق می باشد 2021