我試圖加入關係表profiles
在CSqlDataProvider
,但它不是工作屬性。在視圖中訪問數據Yii CSqlDataProvider和關係表
如何在視圖中訪問profiles.id
?
Controller.php這樣:
$sql = "SELECT `events`.`id`
FROM events
LEFT OUTER JOIN `profiles` ON (`events`.`profile_id`=`profiles`.`id`)";
$dataProvider=new CSqlDataProvider($sql);
View.php:
<?php $this->widget('bootstrap.widgets.TbGridView',array(
'type'=>'striped bordered condensed',
'id'=>'events-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
'profiles.id', // Problem here, always returns NULL.
'events.id',
),
)); ?>
如果我使用'events'.'profile_id'它的工作原理,但'profiles'.'id'不工作,總是返回NULL。我需要使用相關的,因爲我會使用除ID之外的其他字段。 –
你只能在mysql中測試這個sql請求嗎? phpMyadmin顯示結果是什麼? –
SQL正在返回正確的數據'events.id'和'profiles.id'。我想問題是在試圖獲取'profiles.id'時TbGridView。 –