2017-09-26 169 views
0

管理員角色我有一個數據庫,在此:管理員擁有isAdmin屬性,但其他用戶有isAdmin財產。添加在laravel 5.4

我想檢查誰登錄的用戶是管理員沒有通過它們重定向到我的應用程序不同的頁面。我在Controller中的代碼是:

public function store(User $user) 
{ 
    if (auth()->attempt(request(['email', 'password']))) { 
     if ($user->isAdmin == 1) { 
      return redirect('/ShowUser'); 
     } 
     { 
      return redirect('/lo'); 
     } 

    } 
    return back()->withErrors(
     [ 
      'message' => 'Error' 
     ] 
    ); 

} 

但是這段代碼不起作用;它始終將用戶發送到'/lo'。我該如何解決它?

+0

'if($ user-> isAdmin){// Code here ...}'? – ako

+0

對於** Laravel **中的**用戶角色許可**管理**我建議[this](https://github.com/Zizaco/entrust)。 – ako

+0

@ako此代碼檢查用戶是否是數據庫中的Admin屬性 – Honey

回答

0

您錯過了else關鍵字。

就在這裏:

if ($user->isAdmin == 1) { 
    return redirect('/ShowUser'); 
} 
{ // <-- right here 
    return redirect('/lo'); 
} 

添加else關鍵字。

if ($user->isAdmin == 1) { 
    return redirect('/ShowUser'); 
} 
else { // <-- right here 
    return redirect('/lo'); 
} 

無論如何,即使在上面的編輯之後,您的代碼仍然可以正常運行。但我有問題給你:

  • 是否假設user在數據庫中?

  • 數據庫中isAdmin的默認值是多少?

  • 你是否將isAdmin屬性作爲輸入從表單或其他東西傳入?

  • 爲什麼它是一個store請求時,你只是想日誌用戶

這有點令人困惑。我可以從你的代碼中知道你正在嘗試登錄一個用戶,但是你正在使用store方法(沒有什麼不對,只是約定),store方法通常用於存儲數據(如何巧合!)

+0

好的!但是我加上其他這並不適用於我 – Honey

+0

是的,正如我所說,即使你沒有添加'else',它仍然會工作,此外,什麼是你想做什麼?你是否試圖登錄用戶?嘗試'dd($ user)',然後嘗試'dd(Auth :: user())',這樣我們就可以看到問題了。 – Wreigh