Как получить значение параметра, переданного в пользовательском правиле валидации 5
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": array:1 [▼ 0 => "base_occupancy"]. поэтому я не получаю значение base_occupancy для проверки условия "more_than".
1 ответ
Использование $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;
}
}