Zkontrolujte, zda byl model uložen
save()
vrátí boolean, uloženo nebo ne uložené. Takže můžete buď:
$saved = $myModel->save();
if(!$saved){
App::abort(500, 'Error');
}
Nebo přímo uložit do if:
if(!$myModel->save()){
App::abort(500, 'Error');
}
Všimněte si, že nedává smysl volat save()
dvakrát za sebou jako ve vašem příkladu. A mimochodem, mnoho chyb nebo problémů, které by bránily uložení modelu, stejně vyvolá výjimku...
Zkontrolujte, zda dotaz vrátil výsledek
first()
vrátí null
když není nalezen žádný záznam, tak vaše kontrola funguje najít. Jako alternativu však můžete také použít firstOrFail()
což automaticky vyvolá výjimku ModelNotFoundException
když není nic nalezeno:
$UserProduct = Product::where('seller_id', '=', $userId)->firstOrFail();
(Totéž platí pro find()
a findOrFail()
)
Zkontrolujte, zda byl dotaz proveden
Bohužel s create
není to tak jednoduché. Zde je zdroj:
public static function create(array $attributes)
{
$model = new static($attributes);
$model->save();
return $model;
}
Jak můžete vidět, vytvoří se nová instance modelu s $attributes
a poté zavolejte save()
. Nyní, pokud save()
kam vrátit true byste nevěděli, protože byste stejně získali instanci modelu. Můžete například zkontrolovat ID modelu (protože to je dostupné až po uložení záznamu a vrácení nově vytvořeného ID)
if(!$newUser->id){
App::abort(500, 'Some Error');
}