2011-11-06 87 views
0

我有以下途径:CakePHP的路由和命名参数

Router::connect('/admin/login/:to', 
       array('admin'=>true,'controller'=>'users','action'=>'login'), 
       array(
        'to' => '[A-Za-z0-9\._-]+', 
        'pass' => array('to') 
       )); 

这基本上通过与登录URL字符串/ INT。但它不再使用to的命名参数。因此,例如,而不是得到:/admin/login/to:1AB我得到/admin/login/1AB

如何保留指定的参数,但仍然改变路由从网址中删除用户位?我试过了:'/admin/login/to::to'但这似乎相当草率...

+0

尝试使用'Router :: connectNamed()' –

+0

你能举出一个我如何使用MY路由的例子,因为我以前从来没有听说过'connectNamed',并且不确定是否使用它或'connect'。干杯 – Cameron

+0

'Router :: connectNamed(array(“to”))' –

回答

0

删除该路线。当你想要命名参数时,为什么你有这条路线?

编辑:如果是这样:

Router::connect(
    '/admin/login/*', 
    array(
     'admin'  => true, 
     'controller' => 'users', 
     'action'  => 'login' 
    ) 
); 
+0

正如我想从url中删除控制器名称,只是有前缀,行动和命名参数! – Cameron

0

你会发现在“$这个 - >数据”在你的控制器传递的参数的名称。你的例子中的 :$ this-> data->具有与你放入网址相同的值。