2011-11-06 83 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->具有與你放入網址相同的值。