尝试获取非对象的属性“名称”(查看:

时间:2019-09-23 07:21:28

标签: php laravel-5 session-cookies

  

试图获取非对象的属性“名称”(查看:

我的会话期满时收到此错误。因此,当您刷新浏览器时,我收到此错误,我该如何解决该问题。

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

<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>

2 个答案:

答案 0 :(得分:2)

您可以使用Auth::check()

检查用户是否登录

因此您的刀片部分应如下所示:

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

另外,如果访问者在未登录时不应该看到此刀片,则可以将中间件添加到您的路线中

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

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

答案 1 :(得分:0)

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