Для добавления новой проверки на Laravel я это сделал:Пользовательские проверки в Laravel 4
сделал новый файл с именем customValidation.php
в app/start/
, а затем включил его в app/start/global.php
и протестировали его с echo()
и этим работал. Теперь он загружается в приложение.
Тогда я написал следующий код для проверки флажков в Laravel:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
class customValidate extends Illuminate\Validation\Validator
{
public function validateCheckbox($attribute, $value, $parameters)
{
//if(isset($value)) { return true; } else { return true; }
echo "this is the: " . $value;
}
}
/**
* Resolvers for Custom Validations
*/
Validator::resolver(function($translator, $data, $rules, $message){
return new customValidate($translator, $data, $rules, $message);
});
Однако в моих правилах валидации, я определяю:
`array('sex'=>'checkbox')`
Но это не работает. Ничего не произошло. Ошибка не возникает. Приложение ведет себя так, как будто оно вообще не выполнило эту функцию. Кроме того, когда я повторяю что-то изнутри функции, ничего не получает эхо, еще одно доказательство того, что функция вообще не называется.
Попробуйте 'дд («стоп»)' 'внутри validateCheckbox', отлаживать и посмотреть, если метод вызывается. Из того, что я вижу, он должен быть зарегистрирован и работать. – Andreyco
Нет, он не назовешь –
Отлично, теперь мы знаем, что он не вызван. – Andreyco