laravel как проверить произвелась ли запись в бд
Как проверить успех метода $dela->save();?
После успеха нужно выполнить:
$event=new Event();//add event data
$event->type_id=1;//id delo_type
$event->title=Auth::user()->name.' добавил новое дело - '.$dela->nazva;
$event->user_id=Auth::user()->id;
$event->save();
return redirect()->route('profile.mydelo');
Ответы (2 шт):
Не надо ничего проверять
Это колупание в песочке с проверками уже сто лет как не используется, и тем более в современном фреймворке.
В случае ошибки при сохранении будет выброшено исключение, которое прервёт выполнение скрипта.
Поэтому просто пиши свой код как есть. В случае успеха он выполнится. В случае неуспеха не выполнится.
Никакой код для обработки ошибки тоже писать не надо, он в Laravel уже есть.
Рекомендую переписать так:
Сначала идем в модедь User и добавляем отношение к делу если у вас 1 пользователь имеет много дел то так
public function delos()
{
return $this->hasMany('App\Delo');
}
затем:
$event = auth()->user()->delos()->create([
'type_id' => 1,
'title' => auth()->user()->name.' добавил новое дело - '.$dela->nazva
]);
теперь уже проверка, на не null/false если запись не будет создана, если не нравится код выше - оставляй как есть у тебя просто добавь эту проверку:
if(!$event){
//тут редирект или просто выкидывай ошибку например 404
//так же можешь записывать через фасад лог ошибку для обработки
abort(404);
}
//если запись все же была создана то возвращай профиль дело
return redirect()->route('profile.mydelo');