📜  isdirty()、isClean()、wasChanged 方法 - PHP (1)

📅  最后修改于: 2023-12-03 15:31:27.058000             🧑  作者: Mango

使用 isDirty()、isClean()、wasChanged() 方法 - PHP

在 Laravel 框架中,我们可以使用三个方法来判断 Eloquent 模型是否被修改过:isDirty(),isClean()和wasChanged()。

1. isDirty()

isDirty() 方法将检查当前 Eloquent 模型是否已经被修改,并返回 true 或 false 值。

$user = User::find(1);

if ($user->isDirty()) {
    echo 'The user model has unsaved changes';
}

此方法将对对所有属性进行比较,包括关联属性。

2. isClean()

isClean() 方法将检查当前 Eloquent 模型是否与数据库中存储的值相同,并返回 true 或 false 值。

$user = User::find(1);

if ($user->isClean()) {
    echo 'The user model has no unsaved changes';
}

如果模型属性没有被修改,或者已经使用 save() 方法将更改保存到数据库中,则该方法返回 true。

3. wasChanged()

wasChanged() 方法将检查指定属性在最近的模型查询中是否被修改并返回 true 或 false 值。

$user = User::find(1);

if ($user->wasChanged('email')) {
    echo 'The email property has been modified';
}

此方法可以检查模型的特定属性是否已更改。

结论

以上三个方法,帮助我们更好的了解我们的 Eloquent 模型是否被修改,从而做出更具针对性的响应。请区分这些方法的不同之处并根据实际情况选择使用。