Ловушка «Попытка получить свойство необъекта» в шаблонах лезвий - PullRequest
0 голосов
/ 10 мая 2019

Я отлаживаю проект laravel, и есть много случаев, когда разработчик просто бросал двойные усы в шаблоны блейдов, ссылающиеся на свойства объекта, без предварительной проверки, существуют ли эти отношения.

пример

{{$category->name}}

<small>{{$category->parent->name}}</small>

Есть ли в laravel встроенный способ просто молча потерпеть неудачу, если, например, не установлена ​​$ category, или не установлена ​​$ category-> parent, не прибегая к чему-то в этом направлении ...

@if (isset($category))
   {{$category->name}}
@endif

@if (isset($main_category->parent))
    @if($main_category->parent != null)
        <small>{{$main_category->parent->name}}</small>
    @endif
@endif

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Есть лучший способ.

{{ $category->name ?? '' }}
// or
{{ $category->name or '' }} // for older version of laravel
0 голосов
/ 10 мая 2019

Есть лучший способ скрыть полученную ошибку,

{{ @$category }}

@ подавит ошибку для неопределенных или неустановленных переменных.

PHP поддерживает один оператор контроля ошибок: знак at (@). когда перед выражением в PHP любые сообщения об ошибках, которые могут быть сгенерированные этим выражением будут игнорироваться.

Вот официальная документация php для оператора контроля ошибок .

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