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

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

查看更多

关注者
0
被浏览
333
6 个回答
千鸟
千鸟 2018-11-12
这家伙很懒,什么也没写!

` $rule = [

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

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

千鸟
千鸟 2018-11-12
这家伙很懒,什么也没写!

用 extend 扩展方法已解决

cnqn
cnqn 2018-11-13
这家伙很懒,什么也没写!

能说说具体方法吗?

千鸟
千鸟 2018-11-13
这家伙很懒,什么也没写!
        $validate = new Validate($rule);
        $validate->extend('checkTitle', function ($value) {
           // 写你的检测逻辑 return false为失败 true 为成功
        })
cnqn
cnqn 2018-11-13
这家伙很懒,什么也没写!

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

$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这个方法,推荐你也了解使用下,方便很多。不用修改原本的代码,直接加在表单中,请求服务器函数去验证。

千鸟
千鸟 2018-11-14
这家伙很懒,什么也没写!

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

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览