Проверете дали моделът е запазен
save()
ще върне булева, запазена или не спасен. Така че можете да направите:
$saved = $myModel->save();
if(!$saved){
App::abort(500, 'Error');
}
Или директно запишете в if:
if(!$myModel->save()){
App::abort(500, 'Error');
}
Имайте предвид, че няма смисъл да извикате save()
два пъти подред като в твоя пример. И между другото, много грешки или проблеми, които биха попречили на модела да бъде запазен, така или иначе ще предизвика изключение...
Проверете дали заявката е върнала резултат
first()
ще върне null
когато не бъде намерен запис, така че вашата проверка работи find. Като алтернатива обаче можете да използвате firstOrFail()
което автоматично ще изведе ModelNotFoundException
когато нищо не е намерено:
$UserProduct = Product::where('seller_id', '=', $userId)->firstOrFail();
(Същото важи и за find()
и findOrFail()
)
Проверете дали заявката е изпълнена
За съжаление с create
не е толкова лесно. Ето източника:
public static function create(array $attributes)
{
$model = new static($attributes);
$model->save();
return $model;
}
Както можете да видите, това ще създаде нов екземпляр на модела с $attributes
и след това извикайте save()
. Сега ако save()
къде да върнете true, няма да знаете, защото така или иначе ще получите екземпляр на модел. Това, което бихте могли да направите например, е да проверите за идентификатора на модела (тъй като това е достъпно само след като записът бъде запазен и новосъздаденият идентификатор се върне)
if(!$newUser->id){
App::abort(500, 'Some Error');
}