为了账号安全,请及时绑定邮箱和手机立即绑定

Tp5中自定义验证的问题

Tp5中自定义验证的问题

翻阅古今 2018-07-20 11:08:19
例如 数组是这样的$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等!!!!}
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

//自定义验证函数

    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'],
    ];
];


查看完整回答
反对 回复 2018-07-22
  • 2 回答
  • 0 关注
  • 2371 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信