自定义验证错误参数
Custom validation error parameters
我在我的 Laravel 应用程序中创建了一个自定义验证器,我想生成一个自定义错误。理想情况下,这将是 您的图像必须至少为 500 x 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'
)
);
如何获取错误消息中给出的参数?
在您的消息中添加替换符,例如 :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
我在我的 Laravel 应用程序中创建了一个自定义验证器,我想生成一个自定义错误。理想情况下,这将是 您的图像必须至少为 500 x 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'
)
);
如何获取错误消息中给出的参数?
在您的消息中添加替换符,例如 :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