/** * 架构函数 * 取得DB类的实例对象 字段检查 * @access public * @param string $name 模型名称 * @param string $tablePrefix 表前缀 * @param mixed $connection 数据库连接信息 */ public function __construct($name = '', $tablePrefix = '', $connection = '') { parent::__construct($name, $tablePrefix, $connection); // 聚合模型的字段信息 if (empty($this->fields) && !empty($this->modelList)) { $fields = array(); foreach ($this->modelList as $model) { // 获取模型的字段信息 $result = $this->db->getFields(M($model)->getTableName()); $_fields = array_keys($result); // $this->mapFields = array_intersect($fields,$_fields); $fields = array_merge($fields, $_fields); } $this->fields = $fields; } // 设置第一个模型为主表模型 if (empty($this->masterModel) && !empty($this->modelList)) { $this->masterModel = $this->modelList[0]; } // 主表的主键名 $this->pk = M($this->masterModel)->getPk(); // 设置默认外键名 仅支持单一外键 if (empty($this->fk)) { $this->fk = strtolower($this->masterModel) . '_id'; } }
public function __construct($name = '', $tablePrefix = '', $connection = '') { if ('' !== $name || is_subclass_of($this, 'AdvModel')) { // 如果是AdvModel子类或者有传入模型名称则获取字段缓存 } else { // 空的模型 关闭字段缓存 $this->autoCheckFields = false; } parent::__construct($name, $tablePrefix, $connection); }