блок try / catch не работает, когда идентификатор модели неожиданный - PullRequest
0 голосов
/ 16 апреля 2019

вот мой код:

$id = 'wrong id';
try{
    $myLaravelModel = MyLaravelModel::find($id);
    $myLaravelModel->done = true; //here's error      
}catch (Exception $e){
    return 'error';
}

и когда код попадает в строку с комментарием, я получаю сообщение об ошибке: «Создание объекта по умолчанию из пустого значения», что точно, но я думал, что блок catchпоймает это и вернет «ошибку».Почему не работает?

1 Ответ

6 голосов
/ 16 апреля 2019

Вам нужно использовать findOrFail (). MyLaravelModel::findOrFail($id). Как было сказано в здесь .

Исключения не найдены

Иногда вы можете выбросить исключение, если модель не найдена. Это особенно полезно в маршрутах или контроллерах. findOrFail и методы firstOrFail будут извлекать первый результат запроса; однако, если результат не найден, Illuminate\Database\Eloquent\ModelNotFoundException будет брошено:

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