如何使用关系在 yii SQL 语句上创建别名?

How can I make an alias on yii SQL statement using relationships?

我正在尝试在 Yii 上使用以下代码关联两个 table:

$this->stocks= $stocks->find()->select(['id', 'type.name'])->joinWith('stockType type')->where(['fk_product' => $productId, 'fk_product_type' => 'type.id'])->all();

问题是:我想要股票 ID,但收到一条错误消息,提示 ID 不明确:

1052 Column 'id' in field list is ambiguous

那么,如何命名 table $stocks 或将其设为别名,以便消除歧义?

谢谢!

假设StocksModel$stocks的prototype-class,你可以如下操作

$socksTableName = StocksModel::tableName();

$this->stocks= StocksModel::find()
    ->select([$socksTableName . '.id', 'type.name'])
    ->joinWith('stockType type')
    ->where([
        'fk_product' => $productId,
        'fk_product_type' => 'type.id'
    ])
    ->all();