【问题标题】:Laravel 5 - where to place reusable custom validator?Laravel 5 - 在哪里放置可重用的自定义验证器?
【发布时间】:2015-06-26 21:15:15
【问题描述】:

我想知道我想在多个地方使用的自定义验证器的正确位置在哪里?

比如我有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 方式将它放在哪里?

【问题讨论】:

    标签: php laravel laravel-5 code-organization laravel-validation


    【解决方案1】:

    一定要在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');
    

    【讨论】:

      【解决方案2】:

      我想我将创建一个用于自定义验证的类,我可以在其中编写自定义规则并将其放入库文件夹或可能是中间件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-09
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        • 2015-04-09
        • 2015-05-10
        • 1970-01-01
        相关资源
        最近更新 更多