0
Laravel Eloquent updateOrCreate()
На чтение1 мин
Обновлено1 год назад
Просмотров
В этом посте мы рассмотрим, как используется Laravel Eloquent updateOrCreate() и какова его важность. Laravel предоставляет updateOrCreate(), чтобы помочь нам обновить запись, если она существует, и создать, если нет.
Преимущества метода
Этот метод помогает нам не проверять вручную, существует ли запись, а затем обновлять, если нет, то создавать. Ниже приведен мой пример без Laravel updateOrCreate() и с Laravel updateOrCreate().
Пример без updateOrCreate()
<?php namespace App\Http\Controllers; use App\Models\Post; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class PostsController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $title = 'Post 38'; $description = 'Description for post 38 - updated.'; $body = 'Body for post 38.'; $post = Post::where('title', $title)->first(); if(is_null($post)) { $post = new Post([ 'title' => $title, 'description' => $description, 'body' => $body ]); $post->save(); } else { $post->description = $description; $post->body = $body; $post->update(); } print_r($post);die; } }
Пример с updateOrCreate()
<?php namespace App\Http\Controllers; use App\Models\Post; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class PostsController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $post = Post::updateOrCreate([ 'title' => 'Post 3' ], [ 'description' => 'Description for post 3.', 'body' => 'body for post 3 - updated.' ]); print_r($post);die; } }
Как видно из приведенного выше кода, у нас есть те же функции для обновления или создания, но с реализацией метода Laravel updateOrCreate() мы сокращаем наш код.