// +---------------------------------------------------------------------- namespace Admin\Logic; use Open\Model\ContractModel; use Think\Model; /** * 文档模型逻辑层公共模型 * 所有逻辑层模型都需要继承此模型 */ class SetLogic extends Model { /* 自动验证规则 */ protected $_validate = array(); /* 自动完成规则 */ protected $_auto = array(); /** * 构造函数 * @param string $name 模型名称 * @param string $tablePrefix 表前缀 * @param mixed $connection 数据库连接信息 */ public function __construct($name = '', $tablePrefix = '', $connection = '') { /* 设置默认的表前缀 */ $this->tablePrefix = 'tab_game_'; /* 执行构造方法 */ parent::__construct($name, $tablePrefix, $connection); } /** * 获取游戏详细信息 * @param integer $id 文档ID * @return array 当前模型详细信息 */ public function detail($id) { if ($this->getDbFields() == false) { $data = array(); } else { $data = $this->field(true)->where(array('game_id'=>$id))->find(); if (!$data) { $this->error = '获取详细信息出错!'; return false; } } return $data; } /** * 新增或添加模型数据 * @param number $id 文章ID * @return boolean true-操作成功,false-操作失败 */ public function update($id = 0) { /* 获取数据 */ $data = $this->create(); if ($data === false) { return false; } if (empty($data['id'])) {//新增数据 $data['game_id'] = $id; $data['id'] = $id; $id = $this->add($data); if (!$id) { $this->error = '新增数据失败!'; return false; } } else { //更新数据 $data['game_id'] = $data['id']; $map['game_id'] = $data['id']; unset($data['id']); $status = $this->where($map)->save($data); if (false === $status) { $this->error = '更新数据失败!'; return false; } } return true; } public function deletes($ids=0){ $map = array('id' => array('in', $ids) ); $reg = $this->where($map)->delete(); if($reg){ return true; } else{ return false; } } /** * 检测属性的自动验证和自动完成属性 * @return boolean */ public function checkModelAttr($model_id){ $fields = get_model_attribute($model_id,false); $validate = $auto = array(); foreach($fields as $key=>$attr){ if($attr['is_must']){// 必填字段 $validate[] = array($attr['name'],'require',$attr['title'].'必须!',self::MUST_VALIDATE , 'regex', self::MODEL_BOTH); } // 自动验证规则 if(!empty($attr['validate_rule'])) { $validate[] = array($attr['name'],$attr['validate_rule'],$attr['error_info']?$attr['error_info']:$attr['title'].'验证错误',0,$attr['validate_type'],$attr['validate_time']); } // 自动完成规则 if(!empty($attr['auto_rule'])) { $auto[] = array($attr['name'],$attr['auto_rule'],$attr['auto_time'],$attr['auto_type']); }elseif('checkbox'==$attr['type']){ // 多选型 $auto[] = array($attr['name'],'arr2str',3,'function'); }elseif('datetime' == $attr['type'] || 'date' == $attr['type']){ // 日期型 $auto[] = array($attr['name'],'strtotime',3,'function'); } } $validate = array_merge($validate,$this->_validate); $auto = array_merge($auto,$this->_auto); return $this->validate($validate)->auto($auto); } }