cakephp url重写在路由器文件中无法正常工作

时间:2013-11-29 05:00:21

标签: cakephp

我在重写cakephp网址时面临一些问题

这是我的网址:

domain.com/users/members/mygroup
domain.com/users/admins/mygroup

我想将其重写为

domain.com/mygroup/members
domain.com/mygroup/admins

我尝试了以下代码,但它无效 在routes.php中,我创建了以下路由

Router::connect('/:groupname/:members', array('controller' => 'users', 'action' => 'members'),array('pass' => array('groupname')));

Router::connect('/:groupname/:admins', array('controller' => 'users', 'action' => 'admins'),array('pass' => array('groupname')));

以下是链接:

<?php echo $this->html->link('Members',array('controller'=>'users','action'=>'members','groupname'=>$groupdata['Group']['group_slug'],'members'=>members),array('escape'=>false,'class'=>'links','id'=>'memlink'));?>


<?php echo $this->html->link('Admin',array('controller'=>'users','action'=>'admins','groupname'=>$groupdata['Group']['group_slug'],'admins'=>admins),array('escape'=>false,'class'=>'links','id'=>'admnlink'));?>

当我创建这样的路由时,第一个路由即成员路由工作正常,但第二个路由管理员不工作,它选择成员操作并执行成员方法但是url看起来是正确的,只有操作是错误的。

我该如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

试试这个。

Router::connect('/:groupname/:members', array('controller' => 'users', 'action' => 'members'),array('pass' => array('groupname', 'members')));

Router::connect('/:groupname/:admins', array('controller' => 'users', 'action' => 'admins'),array('pass' => array('groupname', 'admins')));

<强>更新

Router::connect('/:groupname/:action', array('controller' => 'users'),array('pass' => array('groupname')));
Router::connect('/:groupname/:action', array('controller' => 'users'),array('pass' => array('groupname')));

为我工作正常,把这样的代码,

echo $this->html->link('Members',array(
    'controller'=>'users','action'=>'members',
    'groupname'=> 'mygroup'), array(
        'escape'=>false,'class'=>'links','id'=>'memlink'
));
 echo $this->html->link('Admin',array(
    'controller'=>'users','action'=>'admins',
    'groupname'=> 'mygroup'),array(
        'escape'=>false,
        'class'=>'links','id'=>'admnlink'
));