2017-08-25 75 views
0

我想兩個表使用上的Yii下面的代碼相關聯:如何使用關係在yii SQL語句上創建別名?

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

的問題是:我想要的股票ID,我歌廳一個錯誤說的ID是不明確的:

1052列「身份證」在字段列表是不明確的

所以,我怎麼能將該表命名爲$個股或讓一個別名,這樣我可以消除不確定性?

謝謝!

+0

嘗試獲取表名的id例如: - type.id –

+0

謝謝。有效。但是有沒有辦法爲這個表製作一個別名? –

+0

http://www.yiiframework.com/forum/index.php/topic/42791-how-do-i-refer-to-the-table-alias-of-a-relation-in-its-on-property///嘗試這個 –

回答

0

假設StocksModel$stocks的原型級別,您可以按如下操作。

$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();