如何使用YII框架从特定连接表中获取列值?

时间:2011-06-10 15:26:53

标签: php yii

我有这样的查询

$criteria = new CDbCriteria(array(
'distinct' => true,
'select' => array('assets_id'),
'condition' => 'assets_id in (159)',
'with' => array('tbl_asset_mappings'=>array('select'=>array('catid')), 'tbl_assets_details'=>array('select'=>array('filetype','original_filename'))),
'together' => true
));

$result=TblAssets::model()->findAll($criteria);

但我只从firsttable获取所有列值。我没有从第二个表中获取列值。为什么?

我的目标是从tblasset获取assets_id,tbl_asset_mappings.catid,tbl_assets_details.filetype,tbl_assets_details.original_filename

我怎样才能做到这一点。

2 个答案:

答案 0 :(得分:0)

您正在查询对象,因此您将获得关系作为子对象,如$ post-> author-> name。

您需要改为加入而不是加入。在这种情况下,更容易编写为连接原始查询。

如果您只是编写自己的查询而不是在整个Yii中构建

,那么也许会更容易

答案 1 :(得分:0)

您可以访问$model->relatedModel->attribute等相关对象。

model->findAll()之后设置一个断点并查看$model->_related property。你必须有一组相关的模型。