Эта запись посвящена методу laravel eloquent firstOrNew()
. В Laravel eloquent есть полезный метод firstOrNew()
, который позволяет найти и вернуть результат выборки базы данных. Если поиск не дал результатов выборки, то будет создан новый экземпляр объекта и сохранен в базе данных используя метод save()
и последующим возвратом результата.
Без использования firstOrNew()
<?php
namespace App\Http\Controllers;
use App\Models\Product;
use Illuminate\Http\Request;
class ProductController extends Controller
{
/**
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$name = 'Platinum';
$product = Product::where('name', $name)->first();
if (is_null($product)) {
$product = new Product(['name' => $name]);
}
$product->slug = 'platinum';
$product->detail = 'test platinum';
$product->save();
dd($product);
}
}
С использованием firstOrNew()
<?php
namespace App\Http\Controllers;
use App\Models\Product;
use Illuminate\Http\Request;
class ProductController extends Controller
{
/**
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$product = Product::firstOrNew(
[ 'name' => 'Platinum' ],
[ 'slug' => 'platinum', 'detail' => 'test platinum' ]
);
$product->save();
dd($product);
}
}