Laravel验证规则-如何可选,但仅在满足其他条件的情况下

时间:2019-01-21 23:17:32

标签: laravel laravel-validation

如何使用Validation来创建自定义规则,以便该字段可以为空,因为调用函数的结果为true,否则该字段为必填项。

我当然尝试使用'nullable',但是即使该字段为空,Validation也应执行checkAreasDiff()函数来验证该字段在更新期间可以为空。

在控制器中,我创建了一个函数:

    private function validator_update(array $data) {

    \Validator::extend('areas_diff', function($attribute, $value, $parameters, $validator) {
        return checkAreasDiff();
    }, 'VALIDATOR AREAS_DIFF OK.');

    /**
     * RULES
     */
    $rules = [
        'fiscalizoarea'  => 'areas_diff',
    ];


    /**
     * Return \Validator
     */
    return \Validator::make($data, $rules, $msgs);
}

1 个答案:

答案 0 :(得分:0)

如果我对问题的理解正确,那么仅当另一个字段不为空时,您才需要一个字段吗?

已经有一个Laravel规则:required_with

required_with:foo,bar,...
  

正在验证的字段必须存在,并且仅在有任何字段时不为空   还有其他指定字段。

或者,如果我想让您讲清楚,required_without

required_without:foo,bar,...
  

正在验证的字段必须存在,并且只有在任何情况下都不能为空   其他指定字段不存在。