我今天正在与一个problem挣扎,但我自己设法解决了这个问题。 现在我有另一个问题。我发现在这种情况下使用CActiveDataProvider类会更好。这是我的DataProvider的代码:
$dataProvider=new CActiveDataProvider('Category', array(
'criteria'=>array(
'with'=>array('products'),
'condition'=>'t.id=1',
),
));
然后我将此数据提供程序传递给窗口小部件,但无法访问其值。 如果有人可以,请指导我完成整个过程。感谢。
答案 0 :(得分:3)
在Yii社区的帮助下工作(谢谢:)) 这是控制器的代码:
$dataProvider=new CActiveDataProvider('Product', array(
'criteria'=>array(
'with'=>array('category'),
'condition'=>'category.id=:id',
'params'=>array(':id'=>$id),
),
));
答案 1 :(得分:0)
这取决于你的小部件需要什么。
CActiveDataProvider
是CActiveRecord
的包装器,具有排序,分页和过滤的扩展功能。通常CActiveDataProvider
与CListView
等zii小部件一起使用}或CGridView
正在利用其排序和搜索功能。
因此,如果你想用列表或表格(可选)排序/过滤/分页来显示数据 - 在Yii中这样做的最方便的方法是使用描述的zii小部件或它们的扩展。
如果您只需要获取数据并以任何其他方式使用它,但没有CListView
或CGridView
提供的智能呈现机制 - 请使用CActiveRecord
,因为它不会执行除了提取数据之外的任何其他内容。
我发现最好使用CActiveDataProvider类 情况
你可以同样使用CActiveRecord
来实现关系的魔力