【问题标题】:CakePHP: pagination and custom routesCakePHP:分页和自定义路由
【发布时间】:2011-04-04 04:21:20
【问题描述】:

我似乎无法使用带有分页的自定义路线。博客的 URL 应该是http://www.domain.com/en/page:2。但是,由 PaginateHelper 生成的链接(上一个和下一个)不断添加控制器和操作,因此 URL 看起来像 http://www.domain.com/posts/index/en/page:2

路由配置很简单:

Router::connect(
    '/:lang/*',
    array(
        'controller' => 'posts',
        'action' => 'index'
    ),
    array(
        'lang' => '[a-z]{2}',
        'pass' => array(
            'lang'
        )
    )
);

我在视图中设置了这个:

$paginator->options(
    array(
        'url' => $this->passedArgs
    )
);

还可以手动设置路径,不使用数组

Cake 1.33 会发生这种情况

任何帮助将不胜感激!

【问题讨论】:

    标签: cakephp routing pagination cakephp-1.3


    【解决方案1】:

    Paginator 助手的 prev 和 next 方法似乎没有使用默认选项。这就是为什么

    $paginator->options(
        array(
            'url' => $this->passedArgs
        )
    );
    

    不起作用。您可以直接在 prev 和 next 方法上设置它。例如:

    $paginator->prev('<< Previous', array('url' => $this->passedArgs));
    

    希望有所帮助。

    【讨论】:

    • 感谢您的回答!不幸的是,它并没有解决我的问题(还是一样:Cake 不断将控制器 + 动作添加到不应该的 URL 中)。我将在接下来的几天内将其追踪到核心..
    • aargh .. 我找到了:passedArgs 确实只包含 var lang。当我将控制器和操作添加到索引时,它起作用了。再次感谢
    • @harpax 你是怎么解决这个问题的,你可以分享这个作为答案吗
    猜你喜欢
    • 2011-06-29
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 2011-10-28
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    相关资源
    最近更新 更多