我想将数据从控制器发送到我的视图,而不使用会话来获取视图中的数据。
在this question中,他们建议使用return redirect('home')->with(['data' => $value]);
,但我必须在我看来使用Session::get('data')
。
我知道可以使用return view('myView')->with('data', 'value')
来解决这个问题,但我想在导航到主页时将URL更改为 www.myurl.com/home 而我不能使用view('myView')->with('data', 'value')
执行此操作。
谢谢!
答案 0 :(得分:0)
没有别的办法,你真的需要使用Session::get
。但是,我们可以解决它,但它很麻烦。
// some controller function
return redirect('home')->with(['data' => $value]);
现在在home
控制器功能中,执行以下操作:
SomeController@home
...
$data = [];
// if you need to pass other data to view, put it in data[]
// e.g., $data['username'] = Auth::user()->username;
if (Session::has('data')) {
$data['data'] = Session::get('data');
}
return view('myView', compact($data));
在您的视图中,您只需检查是否设置了data
。
<!-- myView.blade.php -->
<span>{{ isset($data) ? $data : '' }}</span>
对我来说,它只是与从视图中访问Session
相同,因为如果你这样做,这就是你的视图的样子。
<!-- myView.blade.php -->
<span>{{ Session::has('data') ? Session::get('data') : '' }}</span>
您还可以使用session()
全局帮助程序而不是Session
外观。