我已经禁用了CakePHP的默认路由并添加了一些我自己的路由。我已经先创建一个路由前缀:当默认路由被禁用时,PaginatorHelper包含路由前缀
Configure::write('Routing.prefixes', array('settings));
然后,我增加了一些路线:
Router::connect('/users', array('controller' => 'users', 'action' => 'index', 'settings' => true));
Router::connect('/users/add', array('controller' => 'users', 'action' => 'add', 'settings' => true));
Router::connect('/users/:id', array('controller' => 'users', 'action' => 'view', 'settings' => true), array('pass' => array('id'), 'id' => '[0-9]+'));
Router::connect('/users/:id/edit', array('controller' => 'users', 'action' => 'edit', 'settings' => true), array('pass' => array('id'), 'id' => '[0-9]+'));
Router::connect('/users/:id/delete', array('controller' => 'users', 'action' => 'delete', 'settings' => true), array('pass' => array('id'), 'id' => '[0-9]+'));
与Html::link
方法建立联系的作品很正确:
$this->Html->link('Users', '/users')
产生
'/users'
和UsersController
内的操作如预期的那样为settings_index
。
然而,PaginatorHelper::sort
预规划/settings
,像这样:
'/settings/users/index/sort:username/direction:asc'
如果我启用内置的路线,实际上只适用。所以,我有两个问题:
- 我怎样才能让
PaginatorHelper
不加前缀'/settings'
? - 如何使PaginatorHelper命名参数与我的自定义路由一起工作,以便我可以拥有像
'/users/sort:email/direction:desc'
这样的URL?
谢谢!!
当您尝试使用Router :: url()生成链接时会发生什么? – 2012-03-09 15:31:19