Laravel 验证规则 - 可选,但如果存在,则经过验证

2022-08-30 19:38:36

我正在尝试通过表单创建用户更新验证,例如“密码”=>NULL,或“密码”=>“newone”;

我试图让它验证只有当它被传递为非空时,什么都没有,甚至“有时”不起作用:/

我正在尝试验证为:

Validator::make(
    ['test' => null], 
    ['test' => 'sometimes|required|min:6']
)->validate();

但它未能得到验证。


答案 1

也许你正在寻找“可空”

'test'=> 'nullable|min:6'

答案 2

虽然这个问题有点老了,但这是你应该怎么做的。你不需要在这么简单的事情上如此努力地挣扎,用这么多的代码。

您需要同时具有可为 null 且有时在验证规则上,例如:

$this->validate($request, [
  'username' => 'required|unique:login',
  'password' => 'sometimes|nullable|between:8,20'
]);

仅当字段具有某个值时,上述内容才会进行验证,如果没有值,或者如果该字段传递 null,则忽略该字段。这很有效。


推荐