Оптимизация операций CRUD с помощью Laravel Eloquent
При работе с базой данных в Laravel обычно вставляются или обновляются записи. Чтобы добиться этого, разработчики часто прибегают к условным операторам, которые проверяют, существует ли запись, прежде чем принять решение о вставке или обновлении.
Метод firstOrNew()
К счастью, Eloquent предлагает более эффективное решение с помощью метода firstOrNew(). Этот метод проверяет наличие записи на основе заданных критериев и возвращает первую соответствующую запись, если она найдена; в противном случае создается новый экземпляр модели.
Пример использования
Рассмотрим следующий пример:
$shopOwner = ShopMeta::where('shopId', '=', $theID)
->where('metadataKey', '=', 2001)
->firstOrNew();
if ($shopOwner->exists) {
// Update the existing record
} else {
// Insert a new record
}
В этом примере метод firstOrNew() используется для поиска записи ShopMeta на основе shopId и MetadataKey. Если запись существует, выполняется блок if и существующая запись обновляется. В противном случае выполняется блок else и вставляется новая запись.
Расширенный пример
Вот более полный пример, демонстрирующий возможности firstOrNew():
$user = User::firstOrNew(array('name' => Input::get('name')));
$user->foo = Input::get('foo');
$user->save();
Обновленная документация
Обратите внимание, что ссылка на документацию, представленная в ответе, больше не актуальна. Для получения последней версии Laravel обратитесь к следующей документации:
[Обновленная документация Laravel](https://laravel.com/docs/8.x/eloquent)
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3