Метод firstOrCreate
Метод firstOrCreate применяется к запросу Eloquent
и выполняет поиск первой записи, соответствующей переданным
условиям. Если запись не найдена, метод создаёт новую запись
с указанными атрибутами. Первым параметром передаётся массив
условий для поиска, вторым - массив дополнительных атрибутов
для создания. Метод возвращает экземпляр модели.
Синтаксис
<?php
Model::firstOrCreate($conditions, $attributes);
?>
Пример
Давайте найдём пользователя с почтой 'user@example.com' или создадим его, если такого нет:
<?php
use AppModelsUser;
$user = User::firstOrCreate(
['email' => 'user@example.com'],
['name' => 'John Doe', 'password' => bcrypt('password')]
);
echo $user->email;
?>
Результат выполнения кода:
"user@example.com"
Пример
Давайте найдём статью с заголовком 'article' или создадим её, если она не существует:
<?php
use AppModelsArticle;
$article = Article::firstOrCreate(
['title' => 'article'],
['body' => 'Content of the article']
);
echo $article->title;
?>
Результат выполнения кода:
"article"
Пример
Давайте найдём категорию по полю 'slug' или создадим её с дополнительными полями:
<?php
use AppModelsCategory;
$category = Category::firstOrCreate(
['slug' => 'tech'],
['name' => 'Technology']
);
echo $category->name;
?>
Результат выполнения кода:
"Technology"
Смотрите также
-
метод
firstOrNew,
который создаёт экземпляр модели без сохранения -
метод
updateOrCreate,
который обновляет запись или создаёт новую -
метод
create,
который создаёт новую запись -
метод
first,
который получает первую запись