Laravel表单验证仅当验证字段有值时才进行验证的方法
作者:钓赛通
发布时间:2024-03-23
点击数:
在使用 Laravel 表单验证功能时,有时我们想实现当表单的 input 有值时才进行验证,否则忽略表单验证条件,比如下面的需求:
$this->validate($request, [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'min:6', ]);
上面的 password 验证规则,要求密码至少要6位以上,在创建用户的时候,符合需求。而在更新用户信息时,我们一般设置如果 password 为空代表不修改密码,但是如果 password 为空,仍然会执行密码至少为6位的验证,导致表单验证失败,无法提交。
解决方法是使用 nullable 规则,表示验证字段可以为 null ,如果不是 null 那么就执行后续的验证规则。
$this->validate($request, [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'nullable|min:6', ]);