Laravel-尝试获取非对象的属性“名称”(查看:C:\ xampp \ htdocs \ jairusreport \ resources \ views \ layouts \ header.blade.php)

时间:2019-07-05 16:18:15

标签: laravel

我在Laravel 5.8上有一个应用程序。每次用户在应用程序上停留很长时间,就会出现此错误

  

试图获取非对象的属性“名称”(视图:C:\ xampp \ htdocs \ jairusreport \ resources \ views \ layouts \ header.blade.php)

session error

几天来,我一直没有遇到一个特定的错误,这确实浪费了我的时间。我已经完成了以下错误的屏幕截图。

Auth / LoginController

class LoginController extends Controller   
{
use AuthenticatesUsers;
protected $redirectTo = '/dashboard';

protected function hasTooManyLoginAttempts ($request) {
    $maxLoginAttempts = 2;
    $lockoutTime = 5; // 5 minutes
    return $this->limiter()->tooManyAttempts(
        $this->throttleKey($request), $maxLoginAttempts, $lockoutTime
    );
}  

public function __construct()
{
    $this->middleware('guest')->except('logout');
}

public function logout()
{
    $user = Auth::user();
    Log::info('User Logged Out. ', [$user]);
    Auth::logout();
    Session::flush();

    return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/login');
}    
}

问题的原因是什么。我该怎么解决这个问题。

2 个答案:

答案 0 :(得分:1)

可能有两件事

  1. 数据库中没有名称为name

  2. 的字段
  3. 或者您尚未登录。

用于检查用户是否登录

if(Auth::check())
{
   echo Auth::user()->id;
 }

检查以上条件,不要忘记在用户模型中添加

class user
{
   protected $fillable = [
    'name'
   ];
 }

答案 1 :(得分:0)

Laravel使用会话来跟踪经过身份验证的用户。会话可能正在超时,而用户正在注销。

为避免这种情况在您的视图中引起问题,建议您进行空检查Auth::user()或将Auth::check()与刀片if块一起使用。

如果要修改SESSION_LIFETIME,请查看config/session.php