Laravel 5.4 required_with 不适用于 alpha_dash 和 min

Laravel 5.4 required_with doesn't works with alpha_dash and min

这是我的验证码:

'old_password' => 'max:255|required_with:new_password|old_password',
'new_password' => 'max:255|required_with:old_password|min:6|alpha_dash',

我有 alpha_dash 和 min:6 如果两个字段都为空,验证将失败。我该如何解决?

old_password 是自定义规则

Validator::extend('old_password', function ($attribute, $value, $parameters, $validator) {
  if( $value == ''){
      return true;
  } else {
      return \Hash::check($value, request()->user()->password);
  }
});

问题是 min:6alpha_dash 规则不知道 required_with:old_password 规则,并且当 old_password 字段不是时它失败了当前的。这就是为什么他们也失败了。

尝试为您的 new_password 字段使用扩展的 sometimes 规则。可以找到更详细的描述 here.

$validator->sometimes('newPassword', 'newPassword', function(){
  return ! request('oldPassword');
})