【问题标题】:CakePHP routing & pagination problemCakePHP 路由和分页问题
【发布时间】:2011-07-21 12:12:13
【问题描述】:

我目前正在开发一个应用程序,其中包含一些涉及传递参数的非常奇怪的路由。一切正常,链接反向路由正确,但分页除外。我正在扯掉我的头发,但一定是错过了什么。

我的路线是:

Router::connect('/manufacturer/:manufacturer/:friendly0', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0')));
Router::connect('/manufacturer/:manufacturer/:friendly0/:friendly1', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0', 'friendly1')));
Router::connect('/manufacturer/:manufacturer/:friendly0/:friendly1/:friendly2', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0', 'friendly1', 'friendly2')));
Router::connect('/manufacturer/:manufacturer/:friendly0/:friendly1/:friendly2/:friendly3', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0', 'friendly1', 'friendly2', 'friendly3')));
Router::connect('/manufacturer/:manufacturer/:friendly0/:friendly1/:friendly2/:friendly3/:friendly4', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0', 'friendly1', 'friendly2', 'friendly3', 'friendly4')));

我已将传递的参数添加到分页器选项中,如下所示:

$this->Paginator->options(array('url'=>array(
    'controller' => 'categories',
    'action' => 'view',
    'manufacturer' => 'nsm',
    'friendly0' => 'Accessories'
)));

但是,分页器链接是这样的:

/categories/view/page:2/manufacturer:nsm/friendly0:Accessories

他们应该是:

/manufacturer/nsm/Accessories/page:2

谁能帮忙?

提前致谢。

编辑:

如果我将 /* 添加到每条路线的末尾,则分页链接和常规链接将按预期工作,但仅适用于第一条路线。我猜在调度期间应该匹配其他路由时,由于 /*,第一条路由总是正确的。

有趣的是,如果我像这样更改这些路线的顺序:

Router::connect('/manufacturer/:manufacturer/:friendly0/:friendly1/*', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0', 'friendly1')));
Router::connect('/manufacturer/:manufacturer/:friendly0/*', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('manufacturer', 'friendly0')));

然后 Cake 似乎认为 page:2 命名的 param 应该是一个传递的 arg 并将它传递给 friendly:1。

【问题讨论】:

  • 我建议您更改您在其他问题中回答的路线配置,并查看分页器是否仍然存在任何问题...

标签: cakephp routing


【解决方案1】:

回答这个问题有助于解决我的问题。谢谢沙兹。

Consolidate CakePHP routes

【讨论】:

    猜你喜欢
    • 2012-06-27
    • 1970-01-01
    • 2011-05-25
    • 2012-07-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    相关资源
    最近更新 更多