【发布时间】:2012-01-02 07:18:58
【问题描述】:
这似乎已经出现在其他用户身上,但我还没有看到与我想要实现的目标相关的答案。
所以基本上我在/admin/portfolio/ 有一个用于我的投资组合的管理面板
当我转到下一页时,我得到了这个:/admin/portfolio/index/page:2 和 /admin/portfolio/index/page:1
1.) 如何从 url 中删除索引?所以只是/admin/portfolio/page:2
2.) 我如何使page:1 只是/admin/portfolio/,如果有人试图转到第 1 页,那么它只会更改 url / 将它们重定向到没有参数的索引。否则这意味着我的第一页有重复。
正如我之前所说,我在网上查看了一些示例,但它们看起来都非常混乱,并且与我使用的代码不同(见下文),所以我不确定如何实现我正在做的事情。
<?php echo $this->Paginator->numbers(); ?>
<?php echo $this->Paginator->prev('« Previous', null, null, array('class' => 'disabled')); ?>
<?php echo $this->Paginator->next('Next »', null, null, array('class' => 'disabled')); ?>
<?php echo $this->Paginator->counter(); ?>
我试过这个:
<?php $this->Paginator->options(array('url'=>array(
'admin'=>true,
'controller' => 'portfolio',
'action' => 'index'))); ?>
但我还是得到了 url 中的索引
但是添加这个:Router::connect('/admin/portfolio/*',array('admin'=>true,'controller'=>'portfolio','action'=>'index')); 确实从 url 中删除了索引,但这会导致第二个问题,即任何内容都可以添加到 url,因此不再严格并且在查看虚假页面时显示 404
所以我也试过了:
Router::connect('/admin/portfolio/:page',
array('admin'=>true,'controller'=>'portfolio','action'=>'index',
array(
'pass' => array('page'),
'page'=> '[0-9]+'
)));
但这也不起作用,因为路由看不到页面!
【问题讨论】:
-
任何更新,因为我真的很难过:/谢谢
标签: cakephp routing pagination