[英]Yii - Multiple CGridView in One Page for Relations
我有以下关系方案:
1 portfolio -> Many Users in each Portfolio -> Each User owns many Products
实体:产品组合,用户,产品
我要显示的内容是在一个页面中:1.投资组合的名称2.用户的标题3.该用户拥有的所有产品的CGridView
似乎,如果未使用CGridView,则可以适当地填充模型,然后使用foreach循环遍历每个用户关系,然后遍历与该用户相关的产品。 并为产品和用户创建render_partial视图。
但是,我完全不知道如何使用CGridView完成此操作。
任何建议都非常感谢!
您要在CGridView中呈现用户的产品吗?
要使用CGridView渲染数据,您需要传入CDataProvider来填充视图。 所以问题是:如何为HAS_MANY关系创建CDataProvider?
令人惊讶的是, CActiveDataProvider
不以这种方式支持关系。 您需要做的就是获取关系并将该数据传递到CArrayDataProvider
。 假设$user->products
关系,您可以这样进行:
$dataProvider = new CArrayDataProvider($user->products, array());
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
'id', // your columns here
),
));
这不是理想的方法,但是可以。 这种特殊技术应归功于此: http : //learnyii.blogspot.com/2010/12/yii-how-to-display-related-hasmany-grid.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.