2016-01-16 34 views
0

我是laravel的新手,所以我試圖創建一個用於學習目的的小項目。我使用內置的Auth進行登錄和註冊。這些自動生成的頁面工作得很好,現在在這裏,我使用控制器postcontroller創建了資源帖子的路由。Auth :: guest()對登錄和註銷用戶都返回true

現在在postcontroller中檢查用戶是否有權返回視圖:posts else登錄頁面。因此,要檢查我下面

if (!Auth::guest()) 

return view('posts'); 

else 

return "......"; 

現在,這裏的驗證::客()返回都記錄在真實和註銷用戶。

+0

您的路線是否應用了「網絡」中間件? – lagbox

+0

是Route :: group(['middleware'=>'web'],function(){Route :: auth(); Route :: get('/ home','homecontroller @ index); – rranj

回答

0

您確定您已經登入嗎?

嘗試甩掉你的驗證::用戶()數據

dd(Auth::user());

順便說一下,如果你在if語句,返回你不需要使用別的。

+0

是的,即使我當我在後臺管理器中轉儲Auth :: user – rranj

+1

那麼它應該是Auth :: user()。但是你說它返回null,這意味着你沒有登錄。 –

+0

但我做了登錄在使用提供的登錄頁面時, – rranj

0

您需要確保使用'網絡'中間件。默認情況下,主頁不使用此功能,但是/ home路徑使用此功能,這就是刀片模板在/ home下工作的原因。

添加'網絡'中間件和dd(Auth :: user()),你會看到更好的結果。

0

但必須添加這行代碼中間件,它需要對支票登錄users.Add這個PostController中知道的是PostController中:

public function __construct() 
{ 

    $this->middleware('auth', ['except' => ['index', 'show']]); 
} 

這之後,您需要確保路由被添加到路由列表中。

php artisan route:list 

一旦路徑被添加,控制器知道他們:這是通過添加在路線中給定的線,如果其通過在終端中輸入命令之下進行添加/ web.php

Route::resource('user','PostController'); 

複檢可以互相交談,你們都是集合的。

注意:除了表示用戶只能訪問索引並在用戶登錄時顯示路由。在這裏查看laravel documentation瞭解更多詳情。希望這可以幫助。