【问题标题】:Cakephp : What is wrong with my pagiantion and routing?Cakephp:我的分页和路由有什么问题?
【发布时间】:2012-03-30 06:18:15
【问题描述】:

我正在使用 cakephp 1.3.X 。我在 url 路由和分页方面遇到了一些问题

我的网址看起来像

http://project.dev/search/hamburg/place:1

下面是我的路由代码

Router::connect('/search/:slug/*', array('controller' => 'searches', 'action' => 'index'));

下面是我要进入搜索页面的控制器

$this->redirect(array('controller'=>'searches','action'=>'index','slug'=>$slugUrl,$query));

我的问题是当我转到下一页时,不会显示 place:1 ,只是链接到 search/hamburg/page:2 即。地方不见了

下面给出了我的 index.ctp 分页器选项

$paginator->options = array(
                                       'url'=>array(
                                            'controller'=>'searches',
                                            'action'=>'index',
                                            'slug'=>$this->params['slug'],  


                                    ));

我怎么了。我在蛋糕文章中搜索了很多,但没有什么对我有用。请指教

【问题讨论】:

    标签: php cakephp pagination


    【解决方案1】:

    添加。

         Router::connectNamed(array('slug'));
    

    在 router.php 的顶部

    或者在你的路由中定义第三个 pass 参数来传递 slug。

          Router::connect('/search/:slug/*', array('controller' => 'searches', 'action' => 'index'), array('pass'=>array('slug')));
    

    更新视图

         $paginator->options = array('url' => 
           array_merge(array('slug' => $this->params['slug']), $this->passedArgs)
         );
    

    【讨论】:

    • 如果我使用这个会有什么结果,我看不到任何变化。但是 Slug 已经来了,params 没有得到
    • 同样在book.cakephp.org/1.2/view/166/Pagination-in-Views的底部,你会发现带有分页的示例路线,你需要定义你在路线上传递的东西,第三个参数。
    • 我已经用你编辑的部分 array('pass'=>array('slug') 进行了测试。它的工作方式就像通过 slug 一样,但是下一页的 url 仍然像 searchs/index/hamburg /page:2/place:1 。我需要这个作为 search/hamburg/page:2/place:1 。有希望吗?
    • hmm... 应该可以工作,如果添加 Router::connectNamed(array('slug', 'page')) 或和 array('pass'=>array('slug' , 'page')) 到路线?
    猜你喜欢
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2011-05-25
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    相关资源
    最近更新 更多