2017-08-25 91 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();