【发布时间】:2016-09-01 13:08:46
【问题描述】:
我使用 Laracasts Flash 包向我的用户显示 Flash 消息。但是有一个问题:一次重定向后闪存值消失了。我用Session::set(); 设置的值仍然存在。我在每个控制器上使用网络中间件,它甚至包括 StartSession 类。
甚至重定向->withInput 在重定向之后都消失了。
这是我的控制器:
public function update(Request $request) {
$profile = Auth::user()->profile;
$validator = Validator::make($request->all(), [
'email' => ['email', 'unique:profiles,email,' . $profile->id, 'max:255'],
]);
if($validator->fails()) {
var_dump("failed");
return redirect()->back()->withInput($request->input())->withErrors($validator);
}
$profile->update($request->input());
$profile->save();
Flash::success('saved');
\Session::set('test', 'testvalue');
return redirect()->route('profile.edit');
}
这是我尝试获取值的方法:
public function edit() {
$account = Auth::user();
var_dump(\Session::all());
return view('profile.edit', [
'account' => $account,
'profile' => $account->profile,
]);
}
testvalue 仍然存在,但 Flash 消息消失了。即使我尝试用Session::flash();自己设置它们
知道该怎么做吗?
【问题讨论】:
-
我认为 Flash 消息只存储用于下一个请求。之后它就会消失。如果要保留以供进一步使用,则需要将其存储在会话中。您可以通过laravel.com/docs/5.2/session了解闪信行为
-
谢谢,但我知道 Flash 消息是如何工作的。问题:它是下一个请求,但它仍然消失了。
-
laracasts.com/series/laravel-5-from-scratch/episodes/15 - 此链接可能对您有所帮助。
标签: php laravel session redirect laravel-5