Я начинаю с Laravel, и мне нужно показать вывод почтового запроса в представлении. Мой файл контроллера возвращает массив с сообщением, например:
return redirect('/myroute')
->with('message', [
'type' => 'success',
'text' => 'It works'
]);
В моем файле просмотра я пытаюсь захватить текст сообщения, но безуспешно. Смотрите мой код ниже
@if (Session::has('message'))
{{ $msg = Session::get('message') }}
<h4>{{ $msg->text }}</h4>
@endif
Дело в том, что условие работает, если я изменил {{$ msg-> text}} на любой текст, он работает, но когда я пытаюсь получить текст сообщения, оно возвращает ошибку:
htmlspecialchars () ожидает, что параметр 1 будет строкой, заданным массивом
Так что любая помощь приветствуется. Если нужна дополнительная информация, просто спросите.
PS: я проверил этот вопрос, но безуспешно ИЗМЕНИТЬ: PS2: Невозможно изменить структуру контроллера
@NicoHaase, я попытался сбросить его {{var_dump ($ msg)}} внутри шаблона, но все равно получил ту же ошибку






Попробуйте получить доступ к массиву следующим образом:
<h4>{{ $msg['text'] }}</h4>
или просто передайте массив с элементами
->with([
'type' => 'success',
'text' => 'It works'
]);
//in the view
@if (session()->has('text'))
<h4> {{ session('text') }} </h4>
@endif
-- РЕДАКТИРОВАТЬ
повторять, чем по сеансу, вот так:
@foreach (Session::get('message') as $msg)
{{$msg['text']}}
@endforeach
вы можете узнать больше об этом здесь
Это не сработало для меня, та же ошибка. Невозможно изменить структуру контроллера. Я также попробовал {{$ msg-> text}}, но ошибка не исчезла.
Затем вам нужно перебрать сеанс, чтобы получить доступ к своим элементам. Посмотрите на мое редактирование выше
Большое спасибо, но все еще не работает. Теперь сообщение об ошибке: «Текст недопустимого смещения строки»
попробуйте var_dump содержимое $msg в представлении и посмотрите, что у него есть, там чего-то не хватает, поэтому я не могу отладить его, когда у меня нет кода.
Сделай это вместо этого
return redirect('/myroute')->with('success','It worked');
Тогда на ваш взгляд
{{session('success')}}
Несознательно я не могу изменить структуру контроллера
Вы проверили, что именно содержит
$msg? Попробуйте сбросить его в контроллер, чтобы увидеть, является ли это массивом, объектом, строкой ...