Как получить значение столбца из конкретной таблицы соединений с использованием инфраструктуры YII? - PullRequest
0 голосов
/ 10 июня 2011

У меня такой запрос

$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. Я не получил значения столбцов из вторых таблиц. Почему?

Моя цель - получить assets_id из tblasset, tbl_asset_mappings.catid, tbl_assets_details.filetype, tbl_assets_details.original_filename

Как мне этого добиться.

Ответы [ 2 ]

0 голосов
/ 17 июня 2011

Вы можете получить доступ к связанному объекту, например $model->relatedModel->attribute.

Установите точку останова после model->findAll() и посмотрите на $model->_related property. У вас должна быть коллекция связанных моделей.

0 голосов
/ 10 июня 2011

Вы запрашиваете объекты, поэтому вы получите отношения как дочерние объекты как отношения типа $ post-> author-> name.

Вместо этого вам нужно сделать соединение, а не с.В этой ситуации проще писать как необработанный запрос Join.

Может быть, будет проще, если вы просто напишите свой собственный запрос, а не создадите его в Yii

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...