编辑:我现在正在测试它,很奇怪,有时它会起作用,有时会给我这个错误。
我有一个应用程序,我已经覆盖了Laravel中的注销功能,所以我在AuthController.php
public function getLogout()
{
$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');
}
但出于某些原因,当我尝试注销时,我遇到了这个错误:
Trying to get property of non-object
这指向了这一行
$userid = Auth::user()->id;
可能是什么问题?我相信我仍然可以访问Auth因为我还没有在该行之前调用Auth::logout();
吗?