2013-04-08 34 views
0

你好,我是创建该API中获取数据.. 现在我得到的所有结果在1个API调用,我做它作为数据提供程序搜索模块分页行为。 这是代码..如何编辑警予

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

这是工作的罚款,并给予分页。我想要做的是使用API​​的限制和ofset。 用于例如考虑叫喊API

http://api.yelp.com/search?term="xxx"&location="xxx"&limit=10&ofset=0; 

我想最初只得到10结果,我需要另一个API调用来获得下一组当我点击分页[2]或下一个>。

这怎么办?

我还需要专家意见。哪一个更好。?一次调用api并获取所有细节一次或逐一获取几个?预期的结果将是200左右..

回答

1

Yelp的不允许 “缓存” 在任何意义http://www.yelp.com/developers/getting_started/api_terms(第6节)的搜索结果。所以我相信你每次点击分页链接时都需要打电话。

为此我会创造一些YelpDataProvider从CDataProvider延伸并覆盖所需的抽象方法。

分页:

不知道我有你面对什么样的问题,但如果你实现你自己的数据提供者,你将有机会获得CPagination类实例及其属性pageSizeoffsetpageSize要被映射到limit狗吠声请求参数,offset属性 - 直接向offset请求PARAM。

我希望这会有所帮助。