Validation 如果不起作用,则需要Laravel验证

Validation 如果不起作用,则需要Laravel验证,validation,laravel-5,Validation,Laravel 5,我有电子邮件和密码字段,我只希望在add\u user字段值为1时需要它们。这是我的验证: public function rules() { return [ 'add_user' => ['required'], 'password' => ['required_if:add_user,1', 'min:8'], 'email' => ['required_if:add_user,1', 'email', 'max:2

我有电子邮件和密码字段,我只希望在
add\u user
字段值为
1
时需要它们。这是我的验证:

public function rules() {
    return [
        'add_user' => ['required'],
        'password' => ['required_if:add_user,1', 'min:8'],
        'email' => ['required_if:add_user,1', 'email', 'max:255'],
    ];
}

此选项不起作用,即使值为0,也始终会出错。我使用jquery填写
add\u user
值。我有一个下拉列表,如果用户从选项中单击,
add\u user
值为0,但如果通过输入,值为1。值是正确的,但验证不起作用。有人能帮我解决这个问题吗?

我们正在检查两个相互不依赖的字段,这意味着如果
用户id=1
密码和电子邮件将进行其他验证,因此我们需要通过这种方式进行检查

     $rules = [
           'type' => 'required'
         ];

     $v = Validator::make(Input::all(),$rules);

     $v->sometimes('password', 'required|min:8', function($input) {
          return $input->type == '1';
     });
这里我们创建一个
验证器的实例,如果
用户id==1,则需要检查密码,否则不需要验证密码

在模型中,您可以这样做

 public function rules(){
    return [
      'user_id '     => 'required'
    ];
 }

 protected function getValidatorInstance() {
        $validator = parent::getValidatorInstance();
        $validator->sometimes('password', 'required|min:8', 
            function($input) {
            return $input->user_id== 1;
        });
        return $validator;
    }
好的。明白了

我添加了一个可为null的验证属性,现在它可以工作了

return [
    'add_user' => ['required'],
    'password' => ['required_if:add_user,1', 'min:8', 'nullable'],
    'email' => ['required_if:add_user,1', 'email', 'max:255', 'nullable'],
];

希望有一天这会对某人有所帮助。

检查我对它做了一些更改,