在没有会话参数的情况下返回Laravel

时间:2016-01-11 12:59:38

标签: php laravel laravel-5

我在Laravel 5的项目中有这个代码:

return back()->with('msg_ok','successfully sent');

在会话中推送param msg_ok,但我不想使用会话参数,我想将msg_ok参数作为变量传递。

例如,我想在我的刀片文件中打印:

{{ $msg_ok }}

3 个答案:

答案 0 :(得分:0)

Laravel back()函数将始终返回Session中的数据。通常,您无法使用back()函数返回变量。你必须使用view()函数。

替代解决方案 您可以使用keep()函数在会话中存储数据,如变量。刷新后不会刷新。

<强> e.g
$ request-&gt; session() - &gt; keep(['username','email']);

然后用密钥获取数据。

答案 1 :(得分:-1)

Laravel back()会将您从提交的表单重定向回来, 和back() - &gt; with('msg_ok','success ..');

如果您将项目放在back() - &gt; with();它会自动放置值 内部会议。

您可以使用return redirect()->to('url/path?msg_ok=successfully')将查询字符串参数添加到url以将其作为变量传递。

然后在您重定向的控制器上将Reqest类注入您的方法

e.g

public function index(Request $request) {
    $msg_ok = $request->get('msg_ok', '');
    return view('view.blade', compact('msg_ok'));
}

将变量字符串放在契约中,以使其可供您查看。

答案 2 :(得分:-2)

您可以在刀片文件中使用Session::get('msg_ok')。或者在控制器中显式地将变量传递给视图,例如 return view()->make('view', ['msg_ok' => session()->get('msg_ok')]);