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

问题描述 投票:0回答:1

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

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

$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');
}

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

php laravel validation laravel-5 laravel-4
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.