【问题标题】:Ajax Pagination in Cakephp not setting pageCakephp中的Ajax分页未设置页面
【发布时间】:2013-01-10 19:01:16
【问题描述】:

我已按照CakeBook 创建基于 Ajax 的分页。链接都在工作,路由也在工作,因为它将请求发送到控制器上的正确操作。我在控制器操作中获取了相关的页码,然后将其发送到 Paginate 助手以获取数据。但这只会返回结果的第一页,而与设置的页面无关。所以我在模型上覆盖了分页功能,果然我总是将页面设置为 1。

控制器动作代码..

public function reviews(){
   if ($this->RequestHandler->isAjax()) { 
        if(!empty($this->params['page'])) {
            $review = $this->Page->find('first',     array('conditions'=>array('friendly'=>'reviews')));
            $this->layout = 'ajax';
            $this->paginate = array(
                'page' => $this->params['page'],
                'limit' => 3,
                'order' => array(
                    'Review.rating'=>'desc')
            );
            $reviews = $this->paginate('Review');       
            $this->set(compact('review','reviews'));
        }
} 
}

那么如何让 Paginator 使用我发送的页面?

【问题讨论】:

  • 您不需要设置页面,因此您可以将其删除。您确定要显示的页面不止一页吗?另外,我没有看到您的分页覆盖。
  • 嗨,我手动添加了页面,因为它总是发送第一页。我去掉了分页覆盖。我这样做只是为了查看它发送的页码,它始终为 1,因此得出的结论是问题出在控制器而不是模型。
  • 分页与模型无关 :) 分页器只是根据分页参数设置常规查找调用的限制。你确定有第2页?您是否也查看了生成的 SQL?
  • 有一个页面 2.. 我用大量记录填充数据库以检查它是否有效。加上初始视图上的分页工作,因为它生成页码等......

标签: ajax cakephp pagination


【解决方案1】:

好的,已经找到解决方案。分页的默认设置是使用命名参数。它为您提供诸如 blah/page:6 之类的 URL。我不知道为什么,但是如果您单独留下分页数组并且不设置页面,那么它似乎会忽略请求中的页码。所以我将分页中的选项更改为

                $this->paginate = array('Review'=>array(
                'paramType' => 'querystring',
                'page' => $this->params['page'],
                'limit' => 3,
                'order' => array(
                    'Review.rating'=>'desc')
            ));

然后这没有正确地通过路由,我从 AJAX 请求中得到了错误的页面。这让我觉得这可能是一个路由问题....我没有遵循这一点,因为我只是在创建分页链接时通过将视图上的分页选项设置为强制路由:-

$this->Paginator->options(array(
    'update' => '#tabReviews',
    'evalScripts' => true,
    "url"=>(array("controller"=>'home',"action"=>'reviews',"plugin"=>'tyres'))
));

这正在工作,所以我希望它可以帮助其他有同样问题的人。

【讨论】:

    猜你喜欢
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 2011-07-29
    • 2014-03-13
    • 2015-07-22
    • 1970-01-01
    相关资源
    最近更新 更多