douou1891 2015-12-01 06:35
浏览 115
已采纳

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

Just trying to do some tags validation. First checking for number of tags (as comma separated list of id's).

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;
    }

}

It keeps spititing out the message as

The tags must be between 2 and 5 characters.

Instead of the proper array message:

The :attribute must have between :min and :max items.
  • 写回答

1条回答 默认 最新

  • dougong8012 2015-12-01 07:05
    关注

    Try to use custom validation rule for you requirement:

    $this->app['validator']->extend('tag', function ($attribute, $value, $parameters)
    {
        $tags = explode(',', $value);
        if(count($tags) >= 2 || count($tags) <= 5)){
            return false;
        }
    });
    

    and then rules would be

    public function rules(){
        return [
            'tags' => ['tag']
        ];
    }
    

    and message can update by

    public function messages() {
            return [
                'tags.tag' => 'The :attribute must have between :min and :max items.'];
    
    }
    

    I hope, you get basic idea to achieve this requirement, let me know if its helps.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制