2011-06-03 102 views
0

我有一個分頁呼叫,如$users = $this->paginate('User');CakePHP分頁兩次

但後來我打電話更新$users陣列與一些東西(第三方)。我如何得到分頁再次調用自己?

$resultsPerPage = 10; 

    $this->paginate = array 
    (
     'conditions' => array 
     (
      'User.name' => $query 
     ), 
     'limit' => $resultsPerPage 
    ); 

然後我做的:$users = $this->paginate('User');

然後我採取在第一頁的那些user_ids返回的設置,並將它們傳遞到另一個系統(我做的API調用,並沒有到該系統的數據庫訪問)。如果更新了某些$users陣列數據,則會爲每個實例執行$this->save()更新(外部代碼也一樣)。但是,這使得$users陣列過時。如果我再次調用相同的數據應該更新它?但paginate不會執行另一個數據庫調用?

+0

請添加更多信息。對此很難給出很好的答案。 – alexdd55 2011-06-03 07:33:28

+1

$ users數組發生了什麼變化? ...你不能像這樣設置分頁條件.... var $ paginate = array('limit'=> 25,'order'=> array('Post.title'=>'asc')) ;在調用分頁方法之前? – 2011-06-03 07:33:30

+0

添加更多註釋 – cdub 2011-06-03 07:40:16

回答

1

你在做什麼聽起來像你做錯了。 api調用不應該在控制器中完成。這是模型/數據源所要做的。然而,這是你可以做你所愛的東西的一種方式。

第一個電話之後這樣做以下

$this->params['named']['page'] = isset($this->params['named']['page']) ? $this->params['named']['page'] + 1 : 2; 

是說增加了頁碼買一個,如果它的設置,或使第2頁。這會欺騙分頁程序,以爲你是在下一頁。你可以再次調用$ this-> paginate()來獲得下一個集合。

cake使用params中的頁面設置限制x,y。