Tp5中自定义验证的问题

例如 数组是这样的

$data = [
    [        
        'mobile'=> '手机号码1',        
        'price' => '100.00'
    ],
        [        
            'mobile'=> '手机号码2',        
            'price' => '500.00'
    ],
];

一维数组的验证是直接可以

  protected $rule = [    
      'mobile'=> 'require|mobile',
  ]

但是现在是二维数组,Tp是有自定义验证的,现在想验证的是,数组里面的手机号码必须有值而且必须是合法的手机号码,金额必须为正整数或者小数点后有两位!

自定义验证:

  protected $rule = [    
      'mobile'=> 'require|array|checkMobile',
  ]
//自定义验证函数protected function checkMobile(){  
    //在这里面咋使用验证呢?
  //最好是可以使用Tp自带的规则 比如mobile require unique等!!!!}


翻阅古今
浏览 2450回答 2
2回答

凤凰求蛊

//自定义验证函数    protected function checkMobile($value)    {        # 01: 首先循环当前数据  每一项的值(value)        # 02: 之后将该值赋给 变量mobile        # 03: 之后使用写验证规则和错误信息        # 04: 之后将错误信息给$this->message();        # 05: 最后验证  $this->check(验证数据,验证规则);        # 06: 最后判断 如何为false 就返回错误信息 $this->getError();        foreach ($value as $item) {            $data['mobile'] = $item;            $rules = [                'mobile' => 'require|mobile',            ];            $message = [                'mobile.require' => '手机号码不得为空!',                'mobile.mobile' => '手机号码格式错误!',            ];            if (false === $this->message($message)->check($data, $rules)) {                return $this->getError();            } else {                return true;            }        }    }使用的时候:    protected $rule = [                 'mobile' => 'require|checkMobile',     ];数据是:$data = [     [                 'mobile'=> ['手机号码1','手机号码2'],     ]; ];
打开App,查看更多内容
随时随地看视频慕课网APP