[英]Laravel Validation between not converting comma separated string to array?
只是尝试做一些标签验证。 首先检查标签数量(以逗号分隔的ID列表)。
class SomePostRequest extends Request
{
public function rules()
{
return [
'tags' => 'between:2,5'
];
}
public function all()
{
$input = parent::all();
$input['tags'] = explode(',', @$input['tags']);
return $input;
}
}
它不断发出消息为
The tags must be between 2 and 5 characters.
而不是正确的数组消息:
The :attribute must have between :min and :max items.
尝试根据您的要求使用自定义验证规则:
$this->app['validator']->extend('tag', function ($attribute, $value, $parameters)
{
$tags = explode(',', $value);
if(count($tags) >= 2 || count($tags) <= 5)){
return false;
}
});
然后规则是
public function rules(){
return [
'tags' => ['tag']
];
}
消息可以通过更新
public function messages() {
return [
'tags.tag' => 'The :attribute must have between :min and :max items.'];
}
希望您对达到此要求有基本的了解,如果有帮助,请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.