Метод is
Метод is применяется к экземпляру модели Eloquent
и принимает в качестве параметра другую модель. Он проверяет,
являются ли обе модели одним и тем же объектом базы данных,
сравнивая их ключи и таблицы. Метод возвращает true,
если модели идентичны, и false в противном случае.
Синтаксис
<?php
$model->is($otherModel);
?>
Пример
Давайте получим две статьи с одинаковым идентификатором и проверим, являются ли они одной и той же моделью:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function index()
{
$article1 = Article::find(1);
$article2 = Article::find(1);
$res = $article1->is($article2);
echo $res;
}
}
?>
Результат выполнения кода:
"true"
Пример
Давайте сравним две разные модели с разными идентификаторами:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function index()
{
$article1 = Article::find(1);
$article2 = Article::find(2);
$res = $article1->is($article2);
echo $res;
}
}
?>
Результат выполнения кода:
"false"
Пример
Метод is полезен для проверки, является ли текущая модель
той же записью, что и модель, переданная в метод. Это часто
используется при работе с отношениями для избежания дублирования
или рекурсивных связей:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
use App\ModelsUser;
class ArticleController extends Controller
{
public function index()
{
$user = User::with('articles')->find(1);
foreach ($user->articles as $article) {
if ($article->is($user->latestArticle)) {
echo $article->title;
}
}
}
}
?>
Результат выполнения кода:
"Latest article title"
Смотрите также
-
метод
isNot,
который проверяет, что модели не идентичны -
метод
getKey,
который возвращает значение первичного ключа модели -
метод
getOriginal,
который получает исходное значение атрибута -
метод
wasRecentlyCreated,
который проверяет, была ли модель только что создана