Yii2。具有一列重命名的多个innerJoinWith

时间:2019-07-02 19:20:50

标签: join activerecord yii2

尝试加入关系表。一切正常,除了一件事。结果,我有两个相似的列名。但是我不知道如何重命名查询中相关“商店”表中的一列。

$query = StoreItem::find()->innerJoinWith('stores', true)->innerJoinWith('users', true);

$dataProvider = new ActiveDataProvider([
            'query' => $query,
]);

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您可以为表设置别名,并在查询中指定所需的列。就像:

$query = StoreItem::find()->select('us.desiredcolumn, st.desiredcolumn')->innerJoinWith('stores as st', true)->innerJoinWith('users as us', true);

我不知道它是否有效,但这是一个主意...

答案 1 :(得分:0)

您可以与商店建立特殊关系:

public function getStoresSpec()
{
  return $this->hasOne(Stores::tableName(), ['id' => 'store_id'])->select('column as another_column', ...);
}

在这里,您将'column'别名设置为'another_column'。不要忘记添加此关系所需的所有其他字段。