РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
229 of 1392 menu

Метод updateOrCreate

Метод updateOrCreate применяется к модели Eloquent и позволяет найти запись по заданным условиям. Если запись найдена, она обновляется переданными данными. Если запись не найдена, создаётся новая запись с переданными атрибутами. Первый параметр метода - это массив условий для поиска, второй параметр - массив данных для обновления или создания.

Синтаксис

<?php Model::updateOrCreate($conditions, $data); ?>

Пример

Давайте найдём статью с slug равным 'first-article' и обновим её заголовок. Если такой статьи нет, создадим новую:

<?php use AppModelsArticle; $res = Article::updateOrCreate( ['slug' => 'first-article'], ['title' => 'Updated title', 'status' => 'published'] ); echo $res->title; ?>

Результат выполнения кода:

"Updated title"

Пример

Давайте найдём пользователя по email и обновим его имя. Если пользователь не найден, создадим нового:

<?php use AppModelsUser; $res = User::updateOrCreate( ['email' => 'john@example.com'], ['name' => 'John Doe', 'role' => 'admin'] ); echo $res->name; ?>

Результат выполнения кода:

"John Doe"

Пример

Давайте найдём категорию по slug и обновим её название. Если категория не существует, создадим новую:

<?php use AppModelsCategory; $res = Category::updateOrCreate( ['slug' => 'new-category'], ['name' => 'New Category', 'description' => 'Description text'] ); echo $res->name; ?>

Результат выполнения кода:

"New Category"

Пример

Давайте найдём продукт по sku и обновим его цену. Если продукт не найден, создадим новый:

<?php use AppModelsProduct; $res = Product::updateOrCreate( ['sku' => 'ABC-123'], ['name' => 'Laptop', 'price' => 999.99, 'stock' => 10] ); echo $res->name . ' - ' . $res->price; ?>

Результат выполнения кода:

"Laptop - 999.99"

Смотрите также

  • метод firstOrCreate,
    который находит первую запись или создаёт новую
  • метод create,
    который создаёт новую запись без проверки существования
  • метод update,
    который обновляет уже существующие записи
  • метод firstOrNew,
    который находит первую запись или создаёт новый экземпляр модели
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить