Пользовательская проверка в Laravel 4

Чтобы добавить новую проверку в Laravel, я сделал следующее:

сделал новый файл под названием 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')` 

Но это не работает. Ничего не произошло. Ошибка не возникает. Приложение ведет себя так, как будто оно вообще не выполнило эту функцию. Кроме того, когда я повторяю что-то изнутри функции, ничего не получает эхо, еще одно доказательство того, что функция вообще не называется.

Solutions Collecting From Web of "Пользовательская проверка в Laravel 4"

Тогда я создавал бы собственную папку для app/validators .

1, Создать app/validators/CustomValidate.php

 <?php class CustomValidate extends Illuminate\Validation\Validator { public function validateCheckbox($attribute, $value, $parameters) { echo "this is the: " . $value; } } 

2, запустите php artisan optimize или composer dumpautoload

3, Где-то зарегистрируйте свой пользовательский валидатор. Возможно, добавьте app/validators.php start/global.php в start/global.php

 Validator::resolver(function($translator, $data, $rules, $message){ return new CustomValidate($translator, $data, $rules, $message); }); 

4, Подтвердить

 $rules = ['agreed' => 'checkbox']; $data = ['agreed' => 0]; $v = Validator::make($data, $rules); dd($v->passes()); 

При отправке формы радиостанции не были установлены в их начальных состояниях, и это заставило Laravel не искать валидатор элемента. Таким образом, для этого нет обходного пути. Что я сделал, я просто добавил начальное состояние в радиоприемники, и они работали.

Многое, как сказал Андрейко