如果字段不为空,则添加对验证器的检查

时间:2017-12-19 01:34:52

标签: php laravel validation laravel-5 laravel-4

我有一个验证器,供用户更新他们的个人资料,在同一页面上,用户可以更改他们的密码。虽然,我不想检查所有3个字段(当前密码,新/已确认)是否为空。

有没有办法可以在Validator::make中添加自定义检查并检查,或添加到验证器并添加带错误的返回页面?

$validator = Validator::make($request->all(), [
        'first_name' => 'required|max:191',
        'last_name' => 'required|max:191',
        'email' => 'required|email|max:191'
      ]);

示例3字段为空,不会出现问题,但如果填写完毕,我可以将其附加到此处进行检查

例如

if ($request->new_password) {
$validator .= array('new_password' => 'required');
}

我的最后一个解决方案是拥有两个验证器...会起作用吗?

1 个答案:

答案 0 :(得分:1)

您可以通过将sometimes添加到规则列表来完成此操作。仅当输入数组中存在该字段时,sometimes才会对字段运行验证检查。作为一个例子,

$v = Validator::make($data, [
'email' => 'sometimes|required|email',
]);

有关更多规则选项,请参阅Laravel Validator Documentation