2

我今天正在努力解决一个问题,但我自己设法解决了它。现在我有另一个问题。我发现在这种情况下最好使用 CActiveDataProvider 类。这是我的 DataProvider 的代码:

$dataProvider=new CActiveDataProvider('Category', array(
            'criteria'=>array(
                'with'=>array('products'),
                'condition'=>'t.id=1',
            ),
));

然后我将此数据提供程序传递给一个小部件,但无法访问它的值。如果有人可以,请指导我完成整个过程。谢谢。

4

2 回答 2

3

在 Yii 社区的帮助下得到了它(谢谢 :))
这是控制器的代码:

$dataProvider=new CActiveDataProvider('Product', array(
    'criteria'=>array(
            'with'=>array('category'),
                'condition'=>'category.id=:id',
                'params'=>array(':id'=>$id),
    ),
));
于 2012-07-04T23:22:20.140 回答
0

好吧,这取决于您的小部件需要什么。 CActiveDataProvider是一个包装器,CActiveRecord具有扩展的排序、分页和过滤功能。通常CActiveDataProvider与 zii 小部件一起使用,CListView或者CGridView正在使用其排序和搜索功能。

因此,如果您想通过(可选)排序/过滤/分页以列表或表格的形式显示数据 - 在 Yii 中最方便的方法是使用描述的 zii 小部件或其扩展。

如果您只需要获取数据并以任何其他方式使用它,但没有CListViewor CGridView- use提供的智能渲染机制CActiveRecord,因为它除了获取数据之外不执行任何其他操作。

我发现在这种情况下最好使用 CActiveDataProvider 类

你同样可以CActiveRecord用来做关系的魔法

于 2012-07-04T18:13:27.237 回答