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の方法に従ってどこに配置すればよいですか?

4

2 に答える 2

7

Service Providerでバリデーターを確実に拡張します。既存のものを使用する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');
于 2015-04-20T14:30:38.463 に答える
-2

カスタムルールを記述できるカスタム検証用のクラスを作成し、それをライブラリフォルダーまたはミドルウェアに配置すると思います。

于 2015-04-20T08:56:45.537 に答える