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

Метод firstOrNew

Метод firstOrNew применяется к запросу Eloquent и позволяет найти первую запись, соответствующую условиям. Если запись не найдена, метод возвращает новый экземпляр модели с переданными атрибутами. В отличие от firstOrCreate, данный метод не сохраняет модель автоматически в базу данных - требуется явно вызвать метод save. Первым параметром передаётся массив условий для поиска, вторым - массив дополнительных атрибутов для создания.

Синтаксис

<?php Model::firstOrNew($conditions, $attributes); ?>

Пример

Давайте найдём пользователя с 'email' равным 'user@example.com'. Если пользователь не найден, создадим новый экземпляр:

<?php use AppModelsUser; $user = User::firstOrNew( ['email' => 'user@example.com'], ['name' => 'John Doe', 'age' => 30] ); if ($user->exists) { echo "User found: " . $user->name; } else { echo "New user created: " . $user->name; } ?>

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

"New user created: John Doe"

Пример

Рассмотрим случай, когда запись уже существует в базе данных. Используем условия для поиска статьи с 'slug' равным 'laravel-article':

<?php use AppModelsArticle; $article = Article::firstOrNew( ['slug' => 'laravel-article'] ); if ($article->exists) { echo "Article found: " . $article->title; } else { echo "Article not found, new instance created"; } ?>

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

"Article found: Laravel Basics"

Пример

Используем метод для создания новой модели с дополнительными атрибутами, которые не участвуют в поиске. Поиск выполняется по полю 'phone', а поле 'role' устанавливается только для нового экземпляра:

<?php use AppModelsUser; $user = User::firstOrNew( ['phone' => '+1234567890'], ['name' => 'Jane Smith', 'role' => 'admin'] ); if (!$user->exists) { $user->save(); echo "New user saved with role: " . $user->role; } else { echo "Existing user found: " . $user->name; } ?>

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

"New user saved with role: admin"

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

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