在 使用的时候可以去掉 :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 字符串';
}
} 最佳答案