请问会员中心的Validate如何添加自定义规则

千鸟 2月前 185

请问会员中心的Validate如何添加自定义规则?我不想把规则加入到Validate.php而是加到控制器是否可以?

最新回复 (6)
  • 千鸟 楼主 2月前
    感谢TA
    0 引用 2

    ` $rule = [

                'title'   => 'require|checkTitle',
                '__token__' => 'token',
            ];`
    

    加了规则,然后再控制器加上 function checkTitle() ,但是没有效果

  • 千鸟 楼主 2月前
    感谢TA
    0 引用 3

    用 extend 扩展方法已解决

  • cnqn 2月前
    感谢TA
    0 引用 4
    千鸟 用 extend 扩展方法已解决

    能说说具体方法吗?

  • 千鸟 楼主 2月前
    感谢TA
    0 引用 5
            $validate = new Validate($rule);
            $validate->extend('checkTitle', function ($value) {
               // 写你的检测逻辑 return false为失败 true 为成功
            })
  • cnqn 2月前
    感谢TA
    0 引用 6

    如果之前有一大串的验证规则,然后

    $rule = [
                    'username'  => 'require|length:3,30',
                    'password'  => 'require|length:6,30',
                    'email'     => 'require|email',
                    'mobile'    => 'regex:/^1\d{10}$/',
                    'captcha'   => 'require|checksms',
                    '__token__' => 'token',
                ];
    
                $msg = [
                    'username.require' => 'Username can not be empty',
                    'username.length'  => 'Username must be 3 to 30 characters',
                    'password.require' => 'Password can not be empty',
                    'password.length'  => 'Password must be 6 to 30 characters',
                    'code.require'  => 'Captcha can not be empty',
                    'captcha.captcha'  => 'Captcha is incorrect',
                    'email'            => 'Email is incorrect',
                    'mobile'           => 'Mobile is incorrect',
                ];
                $data = [
                    'username'  => $username,
                    'password'  => $password,
                    'email'     => $email,
                    'mobile'    => $mobile,
                    'captcha'   => $captcha,
                    '__token__' => $token,
                ];
                $validate = new Validate($rule, $msg);
                $result = $validate->check($data);

    这样的情况下,你这么把这个扩展验证规则加进去?
    我今天也遇到了这样的问题
    后来看到nice validator这个方法,推荐你也了解使用下,方便很多。不用修改原本的代码,直接加在表单中,请求服务器函数去验证。

  • 千鸟 楼主 2月前
    感谢TA
    0 引用 7

    nice validator 只是前端,如果的数据校验要求不高确实可以。如果要求高的还是需要做服务端检验

  • 未登录
    8
返回