Метод isClean
Метод isClean применяется к экземпляру модели Eloquent и возвращает true, если ни один из атрибутов модели не был изменён с момента последней загрузки из базы данных или последнего сохранения. Если модель была создана новой, но ещё не сохранена, метод вернёт true при отсутствии заполненных атрибутов. Первым параметром можно передать имя конкретного атрибута для проверки, вторым - массив атрибутов.
Синтаксис
<?php
$res = $model->isClean();
$res = $model->isClean($attribute);
$res = $model->isClean($attributes);
?>
Пример
Проверим, была ли изменена модель после загрузки из базы данных:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function index()
{
$article = Article::find(1);
$res = $article->isClean();
echo $res;
}
}
?>
Результат выполнения кода:
"1"
В данном случае модель не изменялась, поэтому метод вернул true.
Пример
Проверим модель после изменения атрибута:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function index()
{
$article = Article::find(1);
$article->title = 'new title';
$res = $article->isClean();
echo $res;
}
}
?>
Результат выполнения кода:
""
После изменения атрибута модель считается грязной, поэтому метод вернул false.
Пример
Проверим конкретный атрибут на отсутствие изменений:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function index()
{
$article = Article::find(1);
$article->title = 'new title';
$res = $article->isClean('title');
echo $res;
}
}
?>
Результат выполнения кода:
""
Атрибут title был изменён, поэтому метод вернул false.
Пример
Проверим несколько атрибутов на отсутствие изменений:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function index()
{
$article = Article::find(1);
$article->title = 'new title';
$res = $article->isClean(['title', 'status']);
echo $res;
}
}
?>
Результат выполнения кода:
""
Один из проверяемых атрибутов был изменён, поэтому метод вернул false.
Пример
Проверим модель после сохранения:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function index()
{
$article = Article::find(1);
$article->title = 'new title';
$article->save();
$res = $article->isClean();
echo $res;
}
}
?>
Результат выполнения кода:
"1"
После сохранения модели все изменения считаются применёнными, поэтому метод вернул true.
Пример
Проверим новую модель без заполненных атрибутов:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function index()
{
$article = new Article();
$res = $article->isClean();
echo $res;
}
}
?>
Результат выполнения кода:
"1"
Новая модель без заполненных атрибутов считается чистой.
Смотрите также
-
метод
isDirty,
который проверяет, были ли изменены атрибуты модели -
метод
wasChanged,
который проверяет, были ли изменены атрибуты при последнем сохранении -
метод
getDirty,
который получает массив изменённых атрибутов -
метод
getOriginal,
который возвращает оригинальные значения атрибутов