Как безопасно обращаться к сложным структурам данных, передаваемым на блейде laravel?

#laravel #laravel-blade #undefined-index

#laravel #laravel-blade #неопределенный-индекс

Вопрос:

В Laravel вы можете передавать довольно сложные структуры данных на блейд. Можно предположить, что в этих структурах данных есть ключи и разные уровни записи блейда.

Какова практика bst для обработки возможного неопределенного индекса в блейд-коде?

Является ли единственным решением написать что-то вроде (каждый раз, когда вы обращаетесь к структуре в блейде)

<div>{{ $dataStruct['key0001'] ?? '' }}</div> }}

или (многомерный)

 @isset($dataStruct['key0002'])
    <div>{{ $dataStruct['key0002']['name'] ?? '' }}</div> }}
@endisset
  

Чтобы избежать исключения ErrorException «Неопределенный индекс: key0001»

Использование оператора colasce имеет смысл, но мы собираемся распространить его по всем блокам кода для безопасного возврата… И иногда мы хотели бы прерваться на. более высокий уровень. Итак…

Например. Существует ли какой-либо подход try catch block для отображения резервного HTML-кода на случай, если какой-либо ключ структуры данных не предоставлен?

Есть еще идеи?

Комментарии:

1. мне нравится использовать ?? operator over try cacth , поскольку он прост и мал

Ответ №1:

попробуйте это:

     <div>{{ array_key_exist('key0002', $dataStruct) ? $dataStruct['key0002']['name'] : '' }}</div>