2017-02-27 99 views
0

我想在Laravel中公開顯示內置用戶表的用戶信息。更具體地講,任何人都可以看到用戶信息(電子郵件用戶名)沒有登錄 我在刀片文件中使用這些:即使用戶未登錄,如何獲取用戶(已認證)信息?

{{ Auth::user()->name }} 
{{ Auth::user()->email }} 

但它只能在用戶登錄否則顯示錯誤。 即使我已經在控制器中使用了ELOQUENT並已通過$用戶對象與查看。 我附上了圖片,以便您能夠理解我的問題。這是我的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> 
+0

請在此處發佈實際代碼,而不是代碼圖片。 –

+0

抱歉@JayBlanchard,我是堆棧溢出的新手。所以,無法趕上大會。 –

回答

1

Auth :: user()返回當前已認證的用戶或null用於訪客用戶。所以,如果你在一個guest用戶撥打Auth::user()->name它會顯示錯誤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 
+0

但是,先生,我還想在其他情況下顯示用戶信息。可能嗎 ? –

+1

你想要顯示哪個用戶的信息?如果用戶註銷,該應用程序如何知道要顯示哪個用戶的名稱和電子郵件? – Paras

+0

我可以通過使用雄辯來檢索用戶嗎? –

1

驗證::用戶採取了當前已驗證用戶的信息。所以它將在用戶登錄時工作。

+0

但是,即使用戶未登錄,我也想顯示用戶信息。 –

+0

爲什麼不使用雄辯模型來檢索信息?例如,User :: find($ id)等? – pseudoanime

+0

我試過了,但不起作用。顯示錯誤。 –

相關問題