10 ویژگی Eloquent که شاید نمی دانستید

10 ویژگی Eloquent که شاید نمی دانستید

Php

1 دقیقه

1399/07/13

رضا پارسیان

رضا پارسیان

با همه خوبی‌های لاراول ویژگی‌هایی خارج از جعبه این فریم ورک محبوب وجود دارد که شناختن همه آن‌ها دشوار است، برخی از ویژگی‌ها بدرستی مستند نشده اند.
در این مقاله قصد دارم از ۱۰ ویژگی 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();   

این هم از ۱۰ ویژگی که می‌خواستم در مورد آن‌ها با شما صحبت کنم. لطفاً نظرات خود را در مورد این مقاله به اشتراک بگذارید. حتماً سایر پست‌های من را نیز بررسی کنید، در صورت تمایل می‌توانید نظر دهید.

🤯

😍

😁

😬

😊

🤨 1

🙁 1

🥲

😭

😡

🤬

3 شیوه کسب درآمد از Web Scraping

مقاله بعدی
3 شیوه کسب درآمد از Web Scraping
6 نکته برای بهره وری بیشتر از مدل در لاراول

6 نکته برای بهره وری بیشتر از مدل در لاراول

مقاله قبلی