public $_validate = array( array('name', 'chkUniName', '英文代码已经存在.', self::EXISTS_VALIDATE, 'callback'), 放在 CommonModel 中. //检查唯一 public function chkUni($field){ if(empty($field)){ return false; } $map = array(); $pk = $this->getPk(); //如果有主键传入, 说明是编辑, 加入排除自己的条件. if(!empty($_REQUEST[$pk])){ $map[$pk] = array('neq', intval($_REQUEST[$pk])); } $map[$field] = array('eq', trim($_REQUEST[$field])); if(null === $this->where($map)->find()){ return true; }else{ return false; } } //检查 name 是否存在 protected function chkUniName(){ return $this->chkUni('name'); }