2016-09-04 136 views
0

我想用明顯的電子郵件和密碼驗證用戶,以及數據庫中的ban_status設置爲0。使用附加條件登錄laravel 5.3

我有看最新laravel文檔,我已經嘗試過在AuthenticateUsers.php

protected function validateLogin(Request $request) 
{ 
    $this->validate($request, [ 
     $this->username() => 'required', 'password' => 'required', 'ban_status' => '0', 
    ]); 
} 

這並不做任何事情,只要我可以告訴,將登錄的用戶這樣無論禁止狀態是否爲0,我應該在哪裏做這些額外的條件?

感謝

+0

嘗試 'ban_status'=> '需要|在:0', –

+0

不記錄在所有現在,我m不知道問題出在哪裏 – user6073700

+0

也許你可以試試:ban_status'=>'required | boolean:0 – Franco

回答

0

在你的代碼有:

$this->validate($request, [ 
     $this->username() => 'required', //???? 
          'password' => 'required', 
          'ban_status' => '0', 
    ]); 
  • 我不知道爲什麼你已經通過自身「需要」在那裏,所以我正沿着這一行想什麼:

    $user = $this->username(); 
    $this->validate($request, [ 
        $this->username() => 'email' => 'bail|required|email|exists:dbnamehere.tablenamehere|min:7', //can also be username 
             'password' => 'bail|required|min:8',         
             'ban_status' => ['required', 
                  Rule::unique('users_table_name_here')->where(function ($query) use ($user) { 
                    $query->where(['account_id',$user], 
                       ['ban_status', 0])] 
                  }) 
    ]); 
    

這可能不是w^ork立即關閉,因此您可能需要稍微修改一下,但它很好地使用了Laravel的Eloquent模型。所以希望這可以讓你指向正確的方向。另外請確保將表名和字段名更改爲數據庫中的內容。

編碼快樂=)

參考:

https://laravel.com/docs/5.3/validation