/** * 附加查询表达式 * @access protected * @param \think\db\Query $query 查询对象 * @return \think\db\Query */ protected static function attachQuery($query) { $master = basename(str_replace('\\', '/', get_called_class())); $class = new static(); $fields = self::getModelField($master, '', $class->mapFields); $query->alias($master)->field($fields); foreach (static::$relationModel as $key => $model) { $name = is_int($key) ? $model : $key; $table = is_int($key) ? self::db()->name($name)->getTable() : $model; $query->join($table . ' ' . $name, $name . '.' . $class->fk . '=' . $master . '.' . $class->getPk()); $fields = self::getModelField($name, $table, $class->mapFields); $query->field($fields); } return $query; }