CakePHP分页两次

时间:2011-06-03 07:27:41

标签: php cakephp cakephp-1.2 paginate

我有一个分页符调用,如$users = $this->paginate('User');

然后我打电话用一些东西(第三方)更新$users数组。如何让paginate再次调用自己?

    $resultsPerPage = 10;

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

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

然后我将那些user_id放在第一页返回的set中,并将它们传递给另一个系统(我进行API调用,并且没有对该系统的数据库访问权限)。如果更新了某些$users数组数据,则会为每个实例更新$this->save()(外部代码也是如此)。但这会使$users数组过时。如果我再次呼叫相同的数据,应该更新它?但是paginate不会再做一次数据库调用吗?

1 个答案:

答案 0 :(得分:1)

你在做什么听起来像你做错了。 api调用不应该在控制器中完成。这是模型/数据源要做的。然而,这是你可以做你不喜欢的一种方式。

第一次通话后

执行以下操作

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

就是说增加页码如果设置了就买一个,或者把它设为第2页。这会欺骗分页器认为你在​​下一页。然后,您可以再次调用$ this-> paginate()来获取下一组。

cake使用参数中的页面来设置限制x,y。