【发布时间】:2013-04-02 06:34:30
【问题描述】:
我正在尝试在一个 CGridView 中显示两个数据库表源。 2 个表是 reg.students 和 login.user.. 我的学生模型关系是,
public function relations()
{
Yii::app()->getModule('user');
return array(
'royaltyOutstandings' => array(self::HAS_MANY, 'RoyaltyOutstanding', 'studentID'),
'srkMedicalInfos' => array(self::HAS_MANY, 'SrkMedicalInfo', 'studentID'),
'parents' => array(self::HAS_ONE, 'SrkParents', 'studentID'),
'srkStudentWorksheets' => array(self::HAS_MANY, 'SrkStudentWorksheet', 'studentID'),
'user' => array(self::BELONGS_TO, 'User', 'centre_id'),
);
}
在用户模块中,
public function tableName()
{ return 'login.user'; }
在 cgridview 列数组中,
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'students-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array(
'header' => 'No.',
'value' => '$row+1',
),
array('name' => 'user.centre_id',
'value'=>'$data->user->centre_id',
),
'... // & so on
控制器动作是,
public function actionAdmin()
{
$this->layout = 'column3';
$form = new Reports ;
$model=new Students('search');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['Students']))
$model->attributes=$_GET['Students'];
$this->render('admin',array(
'model'=>$model,
'form'=>$form,
));
}
【问题讨论】:
-
yiiframework.com/doc/api/1.1/CArrayDataProvider - 它可以从您想要的任何数据源提供您想要的任何数据
-
@RuslanPolutsygan,谢谢你的信息.. 让我检查这个链接 n 再次回归
-
能否提供两个数据库之间连接的示例代码
-
您说您已经连接到两个数据库。只需使用普通 SQL 或 ActiveRecord 检索您需要的信息,将其放入数组中,用 CArrayDataProvider 包装并为
CGridView中的dataProvider属性提供它。也许您需要执行多个查询(因为您的数据在多个数据库之间拆分)。 -
通过纯 sql,我可以从表中获取结果,我试图将这两个表显示到单个 gridview 中。
标签: php yii multiple-databases cgridview