Как перехватить «Попытку получить свойство необъектной ошибки» в Laravel

#laravel

#laravel

Вопрос:

Как я могу найти виновника следующей ошибки в Laravel?

Попытка получить свойство необъектной ошибки

Ответ №1:

Это, скорее всего, происходит из-за вызова метода свойства для null объекта. Таким образом, для раннего сбоя вам следует использовать Model::firstOrFail(); или Model::findOrFail(ID); . Кроме этого, null проверка может выполнить это перед использованием, но это становится уродливым, если у вас много null проверок в вашем коде.

try {} catch (Exception $e) {} это также способ перехватить исключение и обработать его вручную, но выполнение этого во многих местах снова требует много работы.

Ответ №2:

Что я делаю, так это использую троичную операцию над моделью перед доступом к свойствам этой модели, вот так $model = Model::find($id); $model ? $name = $model->name : null; с этим вы всегда можете быть уверены, что фатальная ошибка, которую можно выдать, не будет выдана, если модель не найдена. Это также означает, что вы должны проверить, не равно ли имя переменной null, прежде чем работать с ним следующим образом if(!is_null($name) { //do your stuff here}