admin 管理员组

文章数量: 887007

原生php获取参数错误,php

我在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,validation,php

来源: .html

本文标签: 原生php获取参数错误 php