我正在解决一个相当奇怪的问题:
我尝试登录用户,如果凭据不正确,我将消息flash到会话并将用户重定向到登录页面。有显示的消息,这是闪现到会话。无论如何,当我重新加载页面后,会话中仍然有消息,但是,它应该消失。
你能帮我吗?下面是我的代码,我在会话中flash消息:
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
我对这种行为感到很困惑。在我显示消息后,我还尝试在视图中手动调用Session::forget('message')
,但消息从会话中消失,如果我立即打印session::all(),但在我重新加载后,消息再次在会话中。
非常感谢您的帮助
修改以下行:
return redirect(route('adminDashboard'));
return redirect()->to('/adminDashboard');
我在我的项目中使用相同的,它工作得很好