我正在尝试使用明显的电子邮件和密码验证用户,以及如果数据库中的ban_status设置为0。
我看过最新的laravel文档,我在AuthenticateUsers.php中尝试过这种方式
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->username() => 'required', 'password' => 'required', 'ban_status' => '0',
]);
}
就我所知,这没有做任何事情,无论禁止状态是否为0,都会登录用户,我应该在哪里做这个额外的条件?
由于
答案 0 :(得分: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])]
})
]);
这可能无法正常工作,所以你可能需要稍微修补它,但它很好地利用了Laravel的Eloquent模型。所以希望这可以指出你正确的方向。还要确保将表名和字段名更改为数据库中的最新内容。
快乐编码=)
<强>参考:强>