2015-04-20 88 views
4

我想知道自定義驗證器的正確位置在哪裏,我想在多個地方使用它?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路,我把它?

回答

5

肯定會將檢驗器擴展爲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', '[email protected]'); 
+0

偉大的答案,謝謝您! –

-2

我想我會創建一個自定義驗證類,我可以寫我的自定義規則,並將其放入庫文件夾或可能是中間件。

相關問題