我正在尝试列出指定用户的CGridView帖子,但出现错误。执行此操作的正确方法是什么?
Controller.php
public function actionListPosts($id)
{
$criteria = new CDbCriteria;
$criteria->with=array('posts');
$criteria->condition='t.id=:user_id';
$criteria->params=array(':user_id'=>$id);
$dataProvider=new CActiveDataProvider('Users', array(
'criteria' => $criteria
));
$this->render('list',array(
'dataProvider'=>$dataProvider,
));
}View.php:
<?php $this->widget('zii.widgets.grid.CGridView',array(
'id'=>'events-grid',
'dataProvider'=>$dataProvider->posts,
'columns'=>array(
'id',
'name',
),
)); ?>错误:
Property "CActiveDataProvider.posts" is not defined.发布于 2013-01-28 15:27:13
必须使用Post模型的数据提供程序,而不是User模型
在控制器中
public function actionListPosts($id)
{
$criteria = new CDbCriteria;
$criteria->condition='t.user_id=:user_id';
$criteria->params=array(':user_id'=>$id);
$dataProvider=new CActiveDataProvider('Post', array(
'criteria' => $criteria
));
$this->render('list',array(
'dataProvider'=>$dataProvider,
));
}在视图中
<?php $this->widget('zii.widgets.grid.CGridView',array(
'id'=>'events-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
'id',
'name',
),
)); ?>发布于 2013-01-29 07:18:42
如果您还希望能够按此列进行搜索和排序,请尝试http://www.mrsoundless.com/php/yii/searching-and-sorting-a-column-from-a-related-table-in-a-cgridview/
发布于 2013-01-25 21:45:12
在控制器操作中,你可以写
$dataProvider=new CActiveDataProvider('NameofPostTableAR',array(
'criteria'=>array(
'condition'=>'post_id='.$id,)));
$this->render('list',array(
'dataProvider'=>$dataProvider,
));在视图中你可以写
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'post-grid',
'dataProvider'=>$dataprovider,
'columns'=>array(
'post_id',
'post_name',
array(
'class'=>'CButtonColumn',
),
),
)); ?>这里我假设ur Posts表中的字段是(post_id,post_name)
我希望它在你的情况下是正确的..
https://stackoverflow.com/questions/14505848
复制相似问题