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 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?