如何在yii中编辑分页行为

如何在yii中编辑分页行为,yii,Yii,您好,我正在创建一个搜索模块,该模块从API获取数据。。 现在,我在一个api调用中得到了所有结果,我将它作为一个数据提供者。 这是密码 $dataProvider = new CArrayDataProvider($result, array( 'sort' => array(

您好,我正在创建一个搜索模块,该模块从API获取数据。。 现在,我在一个api调用中得到了所有结果,我将它作为一个数据提供者。 这是密码

$dataProvider = new CArrayDataProvider($result, array(          
                                                    'sort' => array(
                                                    'attributes' => array('name',
                                                            ),
                                                    ),
                                                    'pagination' => array(
                                                            'pageSize' => 10,
                                                    ),
                                            ));
这是工作良好,并给予分页。我想做的是使用api的limit和of集。 例如,考虑YELP API

    http://api.yelp.com/search?term="xxx"&location="xxx"&limit=10&ofset=0;
最初我只想得到10个结果,当我单击分页[2]或next>时,我需要另一个api调用来获得下一个集合

如何做到这一点

我还需要专家的意见。哪一个更好。?一次调用api,一次获取所有细节,还是一个接一个地获取少量细节?预期结果将在200左右。

Yelp不允许“缓存”任何意义上的搜索结果(第6节)。所以我相信每次点击分页链接时,您都需要调用

为此,我将创建一些从扩展而来的YelpDataProvider,并覆盖所需的抽象方法

分页:

我不确定您遇到了什么样的问题,但如果您实现自己的数据提供程序,您将可以访问类实例及其属性
pageSize
offset
pageSize
将映射到
limit
yelp请求参数,
offset
属性-直接映射到
offset
请求参数

我希望这会有所帮助

$dataProvider = new CArrayDataProvider($result, array(          
    'sort' => array(
        'attributes' => array('name'),
    ),
    'pagination' => array(
        'pageSize' => 10,
        'offset' => 5
    ),
));