首页 > 解决方案 > 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:无法更改控制器结构

标签: phplaravel

解决方案


尝试按如下方式访问数组:

<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

你可以在这里阅读更多相关信息


推荐阅读