Laravel 5.6 - захватить сообщение от контроллера в поле зрения

Я начинаю с 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: Невозможно изменить структуру контроллера

Вы проверили, что именно содержит $msg? Попробуйте сбросить его в контроллер, чтобы увидеть, является ли это массивом, объектом, строкой ...

Nico Haase 09.11.2018 15:53

@NicoHaase, я попытался сбросить его {{var_dump ($ msg)}} внутри шаблона, но все равно получил ту же ошибку

danielarend 09.11.2018 16:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
147
2

Ответы 2

Попробуйте получить доступ к массиву следующим образом:

<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}}, но ошибка не исчезла.

danielarend 09.11.2018 15:46

Затем вам нужно перебрать сеанс, чтобы получить доступ к своим элементам. Посмотрите на мое редактирование выше

nakov 09.11.2018 15:53

Большое спасибо, но все еще не работает. Теперь сообщение об ошибке: «Текст недопустимого смещения строки»

danielarend 09.11.2018 16:09

попробуйте var_dump содержимое $msg в представлении и посмотрите, что у него есть, там чего-то не хватает, поэтому я не могу отладить его, когда у меня нет кода.

nakov 09.11.2018 17:04

Сделай это вместо этого

return redirect('/myroute')->with('success','It worked');

Тогда на ваш взгляд

{{session('success')}}

Несознательно я не могу изменить структуру контроллера

danielarend 09.11.2018 16:10

Другие вопросы по теме