继承 Validate 自定义的规则

浏览:2207 发布日期:2016/03/24 分类:求助交流
自定义的规则 都要 isMongoIdString:rule 这样类似的格式?

在 使用的时候可以去掉 :rule 么?感觉和系统给的格式不一样。

下面是 自定义验证规则 成功的例子,和大家分享用的。<?php
namespace app\test\controller;

use think\Controller;
use think\Validate;
use app\common\UserValidate;

class Test extends Controller
{

...

    public function Test()
    {
        $rules    = [
            'id' => 'isMongoIdString:rule',
        ];
        $data     = [
            //'id' => '4cb4ab6d7addf985060100',
            'id' => '4cb4ab6d7addf98506010000',
        ];
        $validate = new UserValidate($rules);
        if (!$validate->check($data)) {
            return $validate->getError();
        }

        return 'ok';
    }

...

}
<?php
namespace app\common;

use think\Validate;

class UserValidate extends Validate
{
    // 自定义验证规则
    protected function isMongoIdString($value, $rule, $data)
    {
        $bool = \MongoId::isValid($value);

        return $rule == $bool ? true : '非法的 MongoId 字符串';
    }
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>