2016-09-04 82 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