尝试获取 属性 'name' 的 non-object(视图:

Trying to get property 'name' of non-object (View:

Trying to get property 'name' of non-object (View:

我的 session 过期时出现此错误。因此,当您刷新浏览器时出现此错误,我该如何解决该问题。

这个错误发生在我的五个 blade.php 文件中。当我在这些 blade 中并刷新浏览器时,我得到这个错误。

<li class="nav-item dropdown nav-user">
    <a class="nav-link nav-user-img" href="#" id="navbarDropdownMenuLink2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><img src="assets/images/avatar-1.jpg" alt="" class="user-avatar-md rounded-circle"></a>
    <div class="dropdown-menu dropdown-menu-right nav-user-dropdown" aria-labelledby="navbarDropdownMenuLink2">
        <div class="nav-user-info">
            <h5 class="mb-0 text-white nav-user-name">
                {{ Auth::user()->name }}
                {{ Auth::user()->email }}
            </h5>
            @csrf
            <span class="status"></span><span class="ml-2">Online</span>
        </div>
        <a class="dropdown-item" href="#"><i class="fas fa-user mr-2"></i>Account</a>
        <a class="dropdown-item" href="#"><i class="fas fa-cog mr-2"></i>Setting</a>
        <a class="dropdown-item" href= "{{ route('logout') }}" ><i class="fas fa-power-off mr-2"></i>Logout</a>
    </div>
</li>

您可以使用 Auth::check()

检查用户是否已登录

因此您的 blade 部分应该如下所示:

@if(Auth::check())
    <h5 class="mb-0 text-white nav-user-name">
        {{ Auth::user()->name }}
        {{ Auth::user()->email }}
    </h5>
@endif

此外,如果访问者在 he/she 未登录时不应该看到此 blade,您可以将中间件添加到您的路由

Route::middleware(['auth'])->group(function () { 
// your routes here
});

这将在用户未登录时将用户重定向到登录页面。

您的查询返回的是数组还是对象?如果将其转储出来,您可能会发现它是一个数组,而您只需要一个数组访问 ([]) 而不是对象访问 (->)。