Я использую Laravel 5.1. У меня есть пользовательская функция выхода из системы в AuthController.php
, то, что я добавил на нее, просто вычисляет общее время входа пользователя и просто обновляет определенную таблицу. Моя проблема в том, что когда я нажимаю logout, он просто перенаправляет меня на /home
, теперь это происходит не всегда, но это довольно легко воспроизвести. Когда я нажал кнопку выхода из системы, он просто перенаправил на /home
, затем снова щелкнул, то же самое. Иногда я брал у меня 4 афферма, чтобы щелкнуть кнопку выхода из системы, прежде чем он выйдет из системы и отправит меня на страницу входа. Что здесь происходит? Вот мой код:Laravel - Выход из системы перенаправления на главную, а не выход из системы
public function getLogout()
{
if (Auth::check())
{
$userid = Auth::user()->id;
date_default_timezone_set('Asia/Taipei');
$today = date('Y-m-d');
$logHour = new LoginHour();
$checkLogin = $logHour->checkLoginHoursOut(intval($userid), $today);
if($checkLogin != null)
{
$loginhours = '';
$timestamp = date('Y-m-d h:i:s');
$timestamp2 = strtotime($timestamp);
$userLastLogin = $checkLogin[0]->timestamp;
$userLastLogin2 = strtotime($userLastLogin);
// Get difference in hours
$diffHours = round(($timestamp2 - $userLastLogin2)/3600, 2);
LoginHour::where('date', '=', $today)->
where('user_id', '=', $userid)->
update(['loginhours' => $checkLogin[0]->loginhours + $diffHours, 'status' => 0, 'timestamp' => $timestamp]);
}
Auth::logout();
return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/auth/login');
}
else
{
return Redirect::to('/auth/login');
}
}
Теперь вы можете заметить, у меня есть Auth::check()
и мне нужно, что кузен по какой-то причине я не знаю, почему я получаю ошибку объекта неимущественной в $userid = Auth::user()->id;
Но это нормально сейчас, проблема в том, Я перенаправлен на /home
Я также объявил protected $redirectAfterLogout = '/auth/login';
в верхней части моего контроллера.
Можете ли вы попытаться удалить код, который не имеет никакого отношения к вашей проблеме? Это очень усугубило бы вопрос :-) – edi9999
@ edi9999 Это моя вся функция выхода из системы. Причина, по которой я их ставил, заключается в том, чтобы другие узнали, что может быть неправильным в других частях. Я считаю, что я хорошо объяснил эту проблему, и код не так долго путается :) – jackhammer013
Может быть, вы не вышли из системы успешно. Вы проверили http://laravel.io/forum/11-09-2014-cant-logout-with-authlogout? – jitendrapurohit