在CakePHP 2 Paginator中获取特定路径

在CakePHP 2 Paginator中获取特定路径,php,cakephp,Php,Cakephp,我有4条到同一控制器/动作的路线 Router::connect('/noticias/:id/:slug/*', array( 'controller' => 'posts', 'action' => 'listing', 'admin' => false), array( 'pass' => array('id','slug'), 'id' => '[0-9]+', 'slug' => '[a

我有4条到同一控制器/动作的路线

Router::connect('/noticias/:id/:slug/*', array(
    'controller' => 'posts', 'action' => 'listing', 'admin' => false),
    array(
        'pass' => array('id','slug'),
        'id' => '[0-9]+',
        'slug' => '[a-zA-Z0-9_-]+'
    )
);

Router::connect('/servicos/:id/:slug/*', array(
    'controller' => 'posts', 'action' => 'listing', 'admin' => false),
    array(
        'pass' => array('id','slug'),
        'id' => '[0-9]+',
        'slug' => '[a-zA-Z0-9_-]+'
    )
);

Router::connect('/aplicacoes/:id/:slug/*', array(
    'controller' => 'posts', 'action' => 'listing', 'admin' => false),
    array(
        'pass' => array('id','slug'),
        'id' => '[0-9]+',
        'slug' => '[a-zA-Z0-9_-]+'
    )
);

Router::connect('/produtos/:id/:slug/*', array(
    'controller' => 'posts', 'action' => 'listing', 'admin' => false),
    array(
        'pass' => array('id','slug'),
        'id' => '[0-9]+',
        'slug' => '[a-zA-Z0-9_-]+'
    )
);
但是,当我尝试生成这些不同路由的分页时,CakePHP只为routes.php文件中的第一个(找到的)路由生成

我怎样才能得到具体的路线?或者在Paginator中手动设置路径

什么是最佳解决方案?创建4个动作?正则表达式?重定向




第二个参数数组对于所有4条路由都是相同的。那么,当反向路由时,您希望cake如何区分要生成的url字符串呢?它将始终使用第一个匹配的。选择更好、逻辑上可区分的路线。

是的,我知道ADmad。CakePHP使用找到的第一条路径。我的问题是:什么是最好的解决方案?创建4个动作?重定向?什么?无论如何,谢谢你的帮助。采取不同的行动是明智的。
<div class="paging right">
    <?php $this->Paginator->options(array(
        'url'=> array(
            'controller' => 'posts', 
            'action'     => 'listing',
            'id'         => $this->params->pass['0'],
            'slug'       => $this->params->pass['1'],
            'admin'      => false
        )
    )); ?>

    <?php echo $this->Paginator->prev('<' . __(''), array(), null, array('tag' => 'a', 'separator' => '')); ?>

    <?php echo $this->Paginator->numbers(array('separator' => '')); ?>

    <?php echo $this->Paginator->next(__('') . '>', array(), null, array('tag' => 'a', 'separator' => ''));  ?>
</div>