Laravel 5.6-从Controller抓取消息到视图

时间:2018-11-09 14:09:13

标签: php laravel

我从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:我检查了this question,但没有成功 编辑: PS2:无法更改控制器结构

2 个答案:

答案 0 :(得分:3)

尝试如下访问数组:

<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

您可以了解有关here

的更多信息

答案 1 :(得分:0)

改为执行此操作

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

然后在您的视图上

{{session('success')}}