Laravel 4 Проверка формы, расширение метода __call ()

Я хочу расширить класс проверки формы для поддержки элементов формы массива, как описано здесь для L3 в L4.

Во-первых, я изменил псевдоним Validator с этим в своем app/config/app.php :

 'Validator' => 'app\lib\Support\Facades\Validator', 

Затем я сохранил эти коды как app / lib / Support / Facades / Validator.php

 <?php namespace app\lib\Support\Facades; class Validator extends \Illuminate\Support\Facades\Validator { public function __call($method, $parameters) { if (substr($method, -6) === '_array') { $method = substr($method, 0, -6); $values = $parameters[1]; $success = true; foreach ($values as $value) { $parameters[1] = $value; $rule = snake_case(substr($method, 8)); if (isset($this->extensions[$rule])) { $success &= $this->callExtension($rule, $parameters); } throw new \BadMethodCallException("Method [$method] does not exist."); } return $success; } else { return parent::__call($method, $parameters); } } protected function getMessage($attribute, $rule) { if (substr($rule, -6) === '_array') { $rule = substr($rule, 0, -6); } return parent::getMessage($attribute, $rule); } } 

Затем я убедился, что у моего composer.json есть папка, включенная для автозагрузки:

 "autoload": { "classmap": [ "app/commands", "app/controllers", "app/models", "app/database/migrations", "app/database/seeds", "app/tests/TestCase.php", "app/lib", "app/lib/Support", "app/lib/Support/Facades" ] }, 

Затем я запустил php composer.phar dump-autoload для создания классов автозагрузки.

Дело в том, что, похоже, это не работает. Я даже попытался добавить специальный метод проверки в файл, который я сгенерировал, примерно так:

 protected function validateTest($attribute, $value) { return $value=='test'; } 

В нем говорится: Method [validateTest] does not exist. , Я изменил protected public , тем не менее.

get_class(Validator::getFacadeRoot()) дает мне \Illuminate\Validation\Factory , но когда я расширяю класс, который я написал ему, я получаю эту ошибку: Non-static method Illuminate\Validation\Factory::make() should not be called statically .

Примечание . Да, я не расширил правила, как L4, потому что я не хочу добавлять новое правило, но я хочу изменить __call() метода __call() и getMessage() .

Что мне не хватает, как я могу это сделать?

Кажется, я не искал достаточно. Как было предложено в комментариях, я просто добавил коды, разделяемые в этом ответе на мое app/routes.php без создания нового файла или изменения псевдонима, и он работал безупречно!

Это правило проверки, которое я дал с помощью решения:

 $rules = array( 'items' => 'required|min:1|integerOrArray' );