如何获取自定义验证规则laravel 5中传递的参数值

时间:2015-06-25 04:46:54

标签: laravel-5 custom-validators

The custom validation rule is :

Validator::extend('greater_than', function($attribute, $value, $parameters) {
    if (isset($parameters[0])) {
        return intval($value) > intval($parameter[0]);
    } else {
        return false;
    }
}

max_occupancy rule would then be:

'max_occupancy' => 'required|integer|max:100|greater_than:base_occupancy'

但返回的“$ parameters”数组是:  数组:1 [▼0 => “base_occupancy”。 所以我没有得到base_occupancy的值来检查“greater_than”条件。

1 个答案:

答案 0 :(得分:0)

使用$validator->getData()。它将返回一个键值数组,该键值数组的键是表单输入名称,值是它们的值。

针对您的情况,请按以下步骤解决:

Validator::extend('greater_than', function($attribute, $value, $parameters, $validator) {
    $all_form_data = $validator->getData();
    if (isset($all_form_data[$parameters[0]])) {
        return intval($value) > intval($all_form_data[$parameters[0]]);
    } else {
        return false;
    }
}