настроить ExceptionHandler в сообщении об ошибке findOrFail - PullRequest
1 голос
/ 08 мая 2020

Доброе утро всем,

Laravel v7. +

Я сделал

$user = User::findOrFail($id);

на своем контроллере, он работает хорошо, но когда у меня нет результата он отправляет меня на страницу 404. Я хотел бы иметь возможность вернуться с сообщением об ошибке. Некоторые говорят о попытках поймать. У вас есть другое решение для оптимизации?

Спасибо, добрый день, оставайтесь дома!

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Если у вас возникла эта проблема только в одном контроллере, вы можете использовать try catch

Если вам нужно более общее решение, вы можете работать с методом рендеринга исключения ( https://laravel.com/docs/master/errors#render -метод ) на ModelNotFoundException

public function render($request, Throwable $exception)
{
    if ($exception instanceof ModelNotFoundException) {
        return response()->view('errors.custom', [], 404);
    }

    return parent::render($request, $exception);
}
0 голосов
/ 08 мая 2020

Альтернатива try / catch

$user = User::find($id);
if(!$user){
    return redirect()->back()->with(['error' => 'Error message']);
}

... your other logic here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...