【发布时间】:2023-03-03 18:07:01
【问题描述】:
我在方法末尾有一个带有此重定向的控制器:
// Setup Response message
$msg = [
'type' => 'success',
'value' => 'Your action was successful',
];
return redirect()->back()->with('message', $msg);
响应如下所示:
array:5 [▼
"_flash" => array:2 [▶]
"_token" => "stMmai4OuWI2QlhYGNzxSDyb1qINLfD3RWsoM8mx"
"_previous" => array:1 [▶]
"url" => []
"login_web_59ba36addc2b2f9401580f014c7f58ea4e30989d" => 2
]
我不知道是什么导致消息没有闪现到会话中。
如果我这样做:
session()->flash('message', $msg);
dd(session()->all());
// Setup Response message
$msg = [
'type' => 'success',
'value' => 'Your action was successful',
];
return redirect()->back()->with('message', $msg);
在重定向之前,会话包含消息。
我什至将两条路由(POST 和 GET)移到所有 Auth 组/中间件之外,结果相同。
什么可以清除会话消息?
【问题讨论】:
-
请你试试
return redirect()->back()->with($msg); -
嗨@dparoli,没有区别。这可能是 NGINX 设置问题吗?
-
这应该将变量 $msg 传递给视图而不是会话
-
@TheRealPapa,
session()->flash()与session()->put()做同样的事情,只是它使会话仅可用于下一个请求。 -
嘿Udo,你是对的!我做了
php artisan optimize:clear,然后用redirect()->back()->with('message', $msg);成功了。谢谢!
标签: php laravel session laravel-5.8