Я хотел расширить класс Validator в Laravel. Однако во всех примерах метод make используется для создания нового экземпляра, который я не могу найти в исходном коде Validator . Как я могу переопределить этот метод? Для конструктора требуется экземпляр TranslatorInterface
чтобы он не был вариантом?
Метод make
фактически находится в Illuminate\Validation\Factory
.
Если вы хотите расширить этот метод, вам нужно поменять привязку IoC. Просто перегрузите привязку в контейнере.
App::bindShared('validator', function($app) { $validator = new \Your\Validator\Factory($app['translator'], $app); if (isset($app['validation.presence'])) { $validator->setPresenceVerifier($app['validation.presence']); } return $validator; });