#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 overtry cacth
, поскольку он прост и мал
Ответ №1:
попробуйте это:
<div>{{ array_key_exist('key0002', $dataStruct) ? $dataStruct['key0002']['name'] : '' }}</div>