thinkphp自动验证的require无效

       array('department_name','require','名称必须'),
       array('department_name','require','部门名称不能为空',1,'regex',3),

这两种方式都无效,其他

array('department_name','1,8','部门名称最多8个字',1,'length',3),
array('department_name','','该部门名称已经存在,不要重复',1,'unique',1),
array('department_sort','/^([1-9]\d*|[0]{1,1})$/','部门排序只能是正整数或者0',2,'regex',3),
都是有效的


下面是提交的控制器

    //新增数据的流程
        if(I('post.name')){

            if (!$Department->create()){ // 创建数据对象
                // 如果创建失败 表示验证没有通过 输出错误提示信息
                exit($Department->getError());
            }else{
                // 验证通过 写入新增数据
             /*   $Department->create();*/
                $Department->add();

                if($Department>0){
                    $this->redirect('createDepartment',array('add' =>1));
                }else{
                    $this->error("数据新增失败");
                }
            }

    }
阅读 4.7k
2 个回答

把你的$Department打印出来看看 ,是不是你写的验证字段前有空格

你好,不是无效,而是你的参数里面可能含有 空白字符 比如说:

  • "\0" - NULL
  • "\t" - 制表符
  • "\n" - 换行
  • "\x0B" - 垂直制表符
  • "\r" - 回车
  • " " - 空格

所以检测空的时候当然会通过啦,解决方法有很多,可以参照:

thinkphp 验证器 require 无效

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进