在CakePHP 2 Paginator中获取特定路径
我有4条到同一控制器/动作的路线在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
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>