繁体   English   中英

Laravel验证之间不将逗号分隔的字符串转换为数组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM