Как создать оператор if
в laravel blade
, когда мое электронное письмо с изображением отсутствует в массиве?
Когда электронная почта не определена в массиве, laravel показывает ошибку.
Моя цель - когда электронная почта с изображением определена в массиве, показать изображение, если электронная почта не определена, показать пользовательский jpg.
my array
$picture = array (
'[email protected]' => '1.jpg',
'[email protected]' => '2.jpg',
'[email protected]' => '3,jpg'
);
blade
<img src = "{{ asset('/images/'.$picture[(Auth()->user()->mail_from)] ) }}" height = "333" width = "222" alt = "" style = "margin-left: 65px"/>
Вы можете использовать оператор объединения null, чтобы проверить, установлен ли этот ключ массива, и использовать его или использовать значение по умолчанию:
$picture[Auth()->user()->mail_from] ?? 'custom.jpg'
Вы также можете использовать Collection@get
:
collect($picture)->get(Auth()->user()->mail_from, 'custom.jpg');
<img src = "{{ asset('/images/'.collect($picture)->get(Auth()->user()->mail_from, 'custom.jpg') ) }}" height = "333" width = "222" alt = "" style = "margin-left: 65px"/>
работает!
попробуйте с неопределенным адресом электронной почты в массиве и получите эту ошибку:
Undefined index: email|[email protected]
я использовал ваш первый код:{{ asset('/images/'.$picture[Auth()->user()->mail_from] ?? 'images/custom.jpg' ) }}