2015-01-12 121 views
3

我在我的Laravel應用程序中創建了一個自定義驗證器,並且我想自定義錯誤。理想情況下,這將是您的圖片必須至少500×500像素自定義驗證錯誤參數

但是,我不知道如何獲取validation.php文件中的參數(500,500)。

這是當前的錯誤消息:

"image_dimensions" => "Your :attribute must be at least GET PARAMETERS HERE", 

這裏的驗證:

Validator::extend('image_dimensions', function($attribute, $value, $parameters) { 

    $image = Image::make($value); 

    $min_width = $parameters[0]; 
    $min_height = $parameters[1]; 

    if ($image->getWidth() < $min_width) { 
     return false; 
    } else if ($image->getHeight() < $min_height) { 
     return false; 
    } 

    return true; 

}); 

在這裏,我使用它:

$validator = Validator::make(
    array(
     'image' => Input::file('file'), 
    ), 
    array(
     'image' => 'image_dimensions:500,500' 
    ) 
); 

如何抓給出的參數在我的錯誤消息?

回答

3

添加替代品,以你的消息,例如:myMin和:myMax

"image_dimensions" => "Your :attribute must be at least :myMin to :myMax", 

添加替代品,以您的規則

Validator::replacer('image_dimensions', function($message, $attribute, $rule, $parameters) 
{ 
    return str_replace(array(':myMin', ':myMax'), $parameters, $message); 
}); 

如果你是延長驗證,您可以添加替代方法您規則:

class CustomValidator extends Illuminate\Validation\Validator { 

    public function validateFoo($attribute, $value, $parameters) 
    { 
     return $value == 'foo'; 
    } 

    protected function replaceFoo($message, $attribute, $rule, $parameters) 
    { 
     return str_replace(':foo', $parameters[0], $message); 
    } 

} 

欲瞭解更多信息,請閱讀laravel docs