Laravel 8 檢查屬性變化

2021-07-19 11:29 更新

Eloquent 提供了 isDirty, isCleanwasChanged 方法,以檢查模型的內(nèi)部狀態(tài)并確定其屬性從最初加載時如何變化。

isDirty 方法確定自加載模型以來是否已更改任何屬性。 您可以傳遞特定的屬性名稱來確定特定的屬性是否變臟。isClean 方法與 isDirty 相反,它也接受可選的屬性參數(shù):

$user = User::create([
    'first_name' => 'Taylor',
    'last_name' => 'Otwell',
    'title' => 'Developer',
]);

$user->title = 'Painter';

$user->isDirty(); // true
$user->isDirty('title'); // true
$user->isDirty('first_name'); // false

$user->isClean(); // false
$user->isClean('title'); // false
$user->isClean('first_name'); // true

$user->save();

$user->isDirty(); // false
$user->isClean(); // true 

wasChanged 方法確定在當(dāng)前請求周期內(nèi)最后一次保存模型時是否更改了任何屬性。 你還可以傳遞屬性名稱以查看特定屬性是否已更改:

$user = User::create([
    'first_name' => 'Taylor',
    'last_name' => 'Otwell',
    'title' => 'Developer',
]);

$user->title = 'Painter';
$user->save();

$user->wasChanged(); // true
$user->wasChanged('title'); // true
$user->wasChanged('first_name'); // false 

getOriginal 方法返回一個包含模型原始屬性的數(shù)組,忽略加載模型之后進(jìn)行的任何更改。 您可以傳遞特定的屬性名稱來獲取特定屬性的原始值:

$user = User::find(1);

$user->name; // John
$user->email; // john@example.com

$user->name = "Jack";
$user->name; // Jack

$user->getOriginal('name'); // John
$user->getOriginal(); // 原始屬性數(shù)組 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號