我想为我开始在routes.php
中使用以下代码重定向他的用户显示'falsh-message':
Route::get('/alert',function () {
return redirect()->route('home')->with('message', 'This is a Test Message!');
});
在我在主视图中包含的alerts.blade.php
中,我想阅读此消息:
Route::group(['middleware' => ['web']], function () {
Route::get('/alert',function () {
return redirect()->route('home')->with('message', 'This is a Test Message!');
});
});
我的会话将在storage\framework\sessions
下设置,代码如下:
a:5:{s:6:"_token";s:40:"8304u3fjR9EhvA88QMVGQnGcgdUcWoZj9LrHaDPh";s:7:"message";s:23:"This is a Test Message!";s:5:"flash";a:2:{s:3:"new";a:0:{}s:3:"old";a:1:{i:0;s:7:"message";}}s:9:"_previous";a:1:{s:3:"url";s:22:"http://localhost/alert";}s:9:"_sf2_meta";a:3:{s:1:"u";i:1452937821;s:1:"c";i:1452937821;s:1:"l";s:1:"0";}}
但问题是Laravel没有给我消息的输出,因为它是空的。所以也许有人可以帮助我。
routes.php
:
Route::group(['middleware' => ['web']], function () {
Route::get('/', [
'uses' => '\App\Http\Controllers\HomeController@index',
'as' => 'home',
]);
Route::get('/alert',function () {
return redirect()->route('home')->with('message', 'This is a Test Message!');
});
});
答案 0 :(得分:0)
web
中间件组包含会话所需的所有中间件。您的alert
路由位于中间件组中,因此它会正确设置会话,但您的home
路由也需要位于web
中间件组中才能读取会话。< / p>
答案 1 :(得分:0)
您应该将home
路由放在routes.php文件中的web
中间件中以使其正常工作
答案 2 :(得分:0)
明确插入会话Flash数据..
Route::get('/alert',function () {
$request->session()->flash('message', 'Task was successful!');
return redirect()->route('home');
});
答案 3 :(得分:0)
如果你这样写:
Route::get('/alert',function () {
return redirect()->route('home')->with('message', 'This is a Test Message!');
});
你会在视图中找到一个名为$ message的变量;尝试检查echo $message;
一次性使用;你也可以写:
Route::get('/alert',function () {
$request->session()->flash('message', 'This is a Test Message!');
return redirect()->route('home');
});
这也是一次性使用,但您需要启用会话。 如果你想永久地在会话中留言你可以写:
Route::get('/alert',function () {
$request->session()->put('message', 'This is a Test Message!');
return redirect()->route('home');
});
希望这有助于其他人更清楚地理解。