Я использую следующую проверку для моей формы в Laravel:Ошибка при попытке расширить валидатор в Laravel
public function isValid($data, $rules)
{
$validation = Validator::make($data, $rules);
if($validation->passes()){
return true;
}
$this->messages = $validation->messages();
return false;
}
Правила, передаваемое ему проста:
$rules = [
'name' => 'required',
'type' => 'required'
];
И $data
является входные данные. Теперь мне нужно добавить к нему специальное расширение для проверки, в частности, чтобы убедиться, что значение поля ввода round2
больше значения поля ввода round1
. Глядя на документы, я пробовал следующий синтаксис, который, я думаю, должен быть правильным, но я продолжаю получать ошибку.
$validation->extend('manual_capture', function($attribute, $value, $parameters)
{
return $value > $parameters[0];
});
Тогда я мог бы назвать это с $attribute = 'round1'
, $value = $data['round1']
и $parameters = [$data['round2']]
.
Ошибка Method [extend] does not exist.
- Я не уверен, что мое понимание всей этой концепции верное, так может кто-то сказать мне, как заставить его работать? В этом документе всего около 2 абзацев.
Посмотрите на http://laravel.com/ api/5.1/Illuminate/Validation/Validator.html # method_addExtension – chba
@chba Это Laravel 4.2 ... а также я прошел через документы, я не понимаю, почему мой путь не должен работать. – jovan