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

Php 如果字段不为空,则添加验证器检查,php,laravel,validation,laravel-5,laravel-4,Php,Laravel,Validation,Laravel 5,Laravel 4,我有一个用户验证更新他们的个人资料,并在同一页上的用户可以更改他们的密码。尽管如此,我不想检查所有3个字段(当前密码、新建/确认)是否为空 是否有一种方法可以在验证程序::make中添加自定义检查并进行检查,或者添加到验证程序并添加带有错误的返回页面 $validator = Validator::make($request->all(), [ 'first_name' => 'required|max:191', 'last_name' =>

我有一个用户验证更新他们的个人资料,并在同一页上的用户可以更改他们的密码。尽管如此,我不想检查所有3个字段(当前密码、新建/确认)是否为空

是否有一种方法可以在
验证程序::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');
}

我的最后一个解决方案是有两个验证器。。。这行吗?

您可以通过将
有时
添加到规则列表中来实现这一点
有时
仅当输入数组中存在某个字段时,才会对该字段运行验证检查。作为一名外籍教师

$v = Validator::make($data, [
'email' => 'sometimes|required|email',
]);
有关更多规则选项,请参阅