Метод isDirty
Метод isDirty применяется к экземпляру Eloquent модели
и возвращает true, если атрибут (или несколько атрибутов)
были изменены после загрузки из базы данных или сохранения.
Метод учитывает только те изменения, которые ещё не сохранены
в базу через save. В качестве параметра можно передать
имя одного атрибута или массив имён. Если параметр не указан,
метод вернёт true при наличии любых несохранённых изменений.
Синтаксис
<?php
Model::isDirty($attribute);
?>
Пример
Давайте проверим, был ли изменён атрибут 'title'
у модели после загрузки:
<?php
use AppModelsArticle;
$article = Article::find(1);
$article->title = 'New Title';
$res = $article->isDirty('title');
echo $res;
?>
Результат выполнения кода:
true
Пример
Проверим, были ли изменены несколько атрибутов одновременно.
Метод вернёт true, если хотя бы один из переданных
атрибутов изменён:
<?php
use AppModelsArticle;
$article = Article::find(2);
$article->title = 'Updated Title';
$article->content = 'New content here';
$res = $article->isDirty(['title', 'status']);
echo $res;
?>
Результат выполнения кода:
true
Пример
Вызов метода без параметров проверяет наличие любых изменений в модели. Это полезно для условного выполнения действий перед сохранением:
<?php
use AppModelsArticle;
$article = Article::find(3);
$article->status = 'draft';
if ($article->isDirty()) {
echo 'Model has unsaved changes';
} else {
echo 'Model is clean';
}
?>
Результат выполнения кода:
"Model has unsaved changes"
Пример
После сохранения модели метод isDirty возвращает false,
так как все изменения уже записаны в базу данных:
<?php
use AppModelsArticle;
$article = Article::find(4);
$article->title = 'Final Title';
$article->save();
$res = $article->isDirty();
echo $res;
?>
Результат выполнения кода:
false
Смотрите также
-
метод
wasChanged,
который проверяет изменения после сохранения модели -
метод
getChanges,
который возвращает массив изменённых атрибутов -
метод
getDirty,
который возвращает текущие значения изменённых атрибутов -
метод
getOriginal,
который возвращает исходные значения атрибутов