как получить значение параметра, переданного в пользовательском правиле проверки laravel 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»: массив: 1 [▼ 0 => «base_occupancy»]. поэтому я не получаю значение base_occupancy для проверки условия "больше_чем".


person ajith mohan    schedule 25.06.2015    source источник
comment
является base_occupancy полем в вашей форме?   -  person Emeka Mbah    schedule 25.06.2015
comment
взгляните на это: stackoverflow.com/questions/22491088/   -  person Emeka Mbah    schedule 25.06.2015
comment
class AddRoomRequest extends Request { public function rules() { return [ 'name' =› 'required|min:2|max:1000', 'base_occupancy' =› 'required|integer|min:0|max:100', ' max_occupancy' => 'обязательно|целое число|max:100|больше_чем:base_occupancy' ]; } }   -  person ajith mohan    schedule 25.06.2015
comment
это для формы запроса?   -  person Emeka Mbah    schedule 25.06.2015
comment
да, я создал запрос AddRoomRequest с некоторыми правилами и имеет 2 параметра, которые я пытаюсь связать, т.е............. 'base_occupancy' => 'required|integer|min:0|max :100', 'max_occupancy' =› 'обязательно|целое число|max:100|больше_чем:base_occupancy'   -  person ajith mohan    schedule 26.06.2015


Ответы (1)


Используйте 1_. Он вернет массив «ключ-значение», в котором ключ — это входные имена формы, а значение — их значения.

В вашем случае исправьте так:

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;
    }
}
person The Anh Nguyen    schedule 18.07.2018