我使用的是laravel的内置身份验证。我想显示一条已登录的快闪消息。但似乎找不到该放在哪里。
我曾尝试在Authenticate中间件中设置它,但似乎不起作用。
尝试过这个:
$request->session()->flash('messages', ['message' => ['status' => 'success', 'text' => 'Successfully logged in']]);
和:
Session::flash('messages', ['message' => ['status' => 'success', 'text' => 'Successfully logged in']]);
但是:dd(Session::get('messages'))
为空。
完整示例:
public function handle($request, Closure $next)
{
if ($this->auth->guest()) {
if ($request->ajax()) {
return response('Geen toegang.', 401);
} else {
return redirect()->guest('/'.config('constants.cms_path').'/'.config('constants.login_path'));
}
}
Session::flash('message', ['message' => ['status' => 'warning', 'text' => 'Successfully logged in']]);
return $next($request);
}
如何设置成功登录的flash消息?
编辑
消息正在工作,但每次都已设置。只想在登录一次时设置它。
use Session;
将此行添加到访问会话类
在控制器中设置会话
Session::flash('message', "Colon Success");
并在视图中打印您的会话
<?php
if (Session::has('message')){
echo Session::get('message') ;
}
?>
如果你把它放在Authenticate
中间件中,并将这个中间件用于url,那么每次运行这个中间件时都会使用这个中间件,这是你不想要的。
您需要在用户登录(可能在控制器中)的操作中添加闪烁消息