我正在解决一个非常奇怪的问题:
我尝试登录用户,如果凭据不正确,我将消息刷入Session并将用户bach重定向到登录页面。显示消息,闪烁进入会话。无论如何,在我重新加载页面后,会话中仍然有消息,但它应该消失。
你可以帮我一下吗? 这是我的代码,我将消息闪存到会话中: public static function verify($email, $password) {
$verified = Auth::user()->attempt([
'email' => $email,
'password' => $password
]);
if($verified) {
$user = Auth::user()->get();
Session::flash('message', [
'title' => trans('user.logged_in'.($user->sex != null ? '_'.$user->sex : '')),
'status' => 'success'
]);
return redirect(route('adminDashboard'));
}
else {
Session::flash('message', [
'title' => trans('user.bad_credentials'),
'status' => 'error'
]);
return redirect()->back();
}
return $verified;
}
以下是页面代码,显示在地址上,我在重定向后,在错误凭据(redirect()->back()
)
@if(Session::has('message'))
<?php
$message = Session::get('message');
$status = isset($message['status']) ? $message['status'] : 'success';
$messageString = '';
if(isset($message['title']) && $message['title'] != '')
$messageString = '"'.$message['title'].'"';
if(isset($message['text']) && $message['text'] != '')
$messageString .= ($messageString != '' ? ',' : '').'"'.$message['text'].'"';
?>
<script>
$(document).ready(function () {
Notify({!! $messageString !!}).{{ $status }}();
});
</script>
@endif
我对这种行为感到很困惑。在我显示消息之后,我还尝试在View中手动调用Session::forget('message')
,但消息从会话中消失,如果我在此打印Session :: all()之后立即消息,但在我重新加载之后,消息再次在Session中
非常感谢你的帮助。
答案 0 :(得分:0)
Chang以下一行:
return redirect(route('adminDashboard'));
到
return redirect()->to('/adminDashboard');
我在我的项目中使用相同的方法并且工作正常。