[英]How to get user(authenticated) information even when user is not logged in?
我想從Laravel的內置用戶表中公開顯示用戶信息。 更具體地說,任何人都無需登錄即可查看用戶信息( name , email , username )。我在刀片文件中使用了這些信息:
{{ Auth::user()->name }}
{{ Auth::user()->email }}
但是它僅在用戶登錄時有效,否則顯示錯誤。 甚至我在控制器中使用了ELOQUENT並通過view將$ user對象都傳遞了 。 我附上圖片,以便您了解我的問題。 這是我的PagesController文件
<?php
namespace App\Http\Controllers;
use App\Post;
use App\User;
class PagesController extends Controller{
public function getIndex(){
$posts=Post::orderBy('id', 'DESC')->paginate(4);
$user=User::all();
return view('pages.welcome')->withPosts($posts)->withUser($user);
}
}
這是我的welcome.blade.php文件
<div class="panel-heading">{{ ucwords($user->name) }}</div>
Auth :: user獲取當前已認證用戶的信息。 因此,當用戶登錄時,它將正常工作。
Auth :: user()返回當前通過身份驗證的用戶,對於來賓用戶為null。 因此,如果您在訪客用戶上調用Auth::user()->name
,它將顯示trying to get property of non-object
的錯誤trying to get property of non-object
因為它嘗試從空對象獲取名稱
您可以在刀片中使用如下所示的內容:
@if(Auth::check())
User: {{ Auth::user()->name }}
Email: {{ Auth::user()->email }}
@else
User: Guest
@endif
如果要顯示所有用戶,請在刀片中使用以下命令:
@foreach(\App\User::all() as $user)
User: {{ $user->name }}
Email: {{ $user->email }}
@endforeach
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.