php Laravel中的isDirty()是什么意思?

cs7cruho  于 2024-01-05  发布在  PHP
关注(0)|答案(4)|浏览(209)

首先,我不太熟悉Laravel(或者说不太熟悉“脏”这个词)。
我偶然发现了这行代码-

if ($this->isDirty('status')) {
    if (Notification::has('website-status-' . strtolower($this->status))) {
        Notification::set($this->account, 'website-status-' . strtolower($this->status), $this->emailAttributes())
            ->email();
    }
}

字符串
我不明白这到底是什么意思。我试着在网上找到答案,但Laravel网站只说了这个
“确定给定属性是否为脏属性”
这并没有什么帮助

o2g1uqev

o2g1uqev1#

当您想知道模型在从数据库查询后是否被编辑过,或者根本没有保存时,可以使用->isDirty()函数。

rbl8hiat

rbl8hiat2#

isDirty方法确定自模型加载以来是否有任何属性被更改。您可以传递特定的属性名称以确定特定的属性是否是脏的。

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

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

字符串

ymdaylpp

ymdaylpp3#

Eloquent提供了isDirtyisCleanwasChanged方法来检查模型的内部状态,并确定其属性与最初加载时相比发生了哪些变化。
您可以在官方文档中找到这三种方法的完整描述和示例:https://laravel.com/docs/9.x/eloquent#examining-attribute-changes

g6ll5ycj

g6ll5ycj4#

作为对公认答案的支持:

$model = Model::find(1);

$model->first_column = $request->first_value;
$model->second_column = $request->second_value;
$model->third_column = $request->third_value;

if($model->isDirty()){
// the model has been edited, else codes here will not be executed
}

$model->save();

字符串

相关问题