protected static function attachQuery($query)
{
$class = new static();
$master = $class->name;
$fields = self::getModelField($query, $master, '', $class->mapFields);
$query->alias($master)->field($fields);
foreach ($class->relationModel as $key => $model) {
$name = is_int($key) ? $model : $key;
$table = is_int($key) ? $query->getTable($name) : $model;
$query->join($table . ' ' . $name, $name . '.' . $class->fk . '=' . $master . '.' . $class->getPk());
$fields = self::getModelField($query, $name, $table, $class->mapFields);
$query->field($fields);
}
return $query;
}