Laravel 5 — где разместить многоразовый валидатор?

Мне интересно, где находится правильное место для пользовательского валидатора, который я хочу использовать более чем в одном месте?

Например, у меня есть min_image_size валидатор:

Validator::extend('min_image_size', function($attribute, $value, $parameters) {
$imageSize = getimagesize($value->getPathname());
return ($imageSize[0] >= $parameters[0] && $imageSize[1] >= $parameters[1]);
});

Где я должен разместить его по правильному Laravel-way?

5

Решение

Определенно расширить валидатор в Поставщик услуг. Вы можете использовать существующие app/Providers/AppServiceProvider.php или создайте другой только для проверки.

Затем в boot() метод, добавьте это:

public function boot(){
$this->app['validator']->extend('min_image_size', function($attribute, $value, $parameters) {
$imageSize = getimagesize($value->getPathname());
return ($imageSize[0] >= $parameters[0] && $imageSize[1] >= $parameters[1]);
});
}

Также может быть целесообразно поместить действительные правила проверки в отдельный класс и использовать этот синтаксис:

$this->app['validator']->extend('min_image_size', 'MyCustomValidator@validateMinImageSize');
6

Другие решения

Я думаю, что я создам класс для пользовательской проверки, где я могу написать свои собственные правила и поместить его в папку библиотеки или может быть промежуточным программным обеспечением.

-2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector