2014-12-07 181 views
1

我有兩個不同的控制器,我想要路由到相同的URL具有相同名稱的CodeIgniter路由

例如,

$route['dashboard/(:any)'] = 'admin/crud/$1'; 
$route['dashboard/(:any)'] = 'admin/dashboard/$1'; 

但是這是導致404錯誤。

我猜想:any通配符有問題。

有沒有其他的使用方法?

回答

0

CodeIgniter不會將控制器映射到URL,它將URL映射到控制器。見URI Routing

您試圖將兩個相同的確切URL映射到不同的地方。這沒有意義。

此外,由於$route只是一個關聯數組,因此您將覆蓋該值而不是添加其他路由。

$route['dashboard/(:any)'] = 'admin/crud/$1'; 
$route['dashboard/(:any)'] = 'admin/dashboard/$1'; //Immediately over writes the previous value 

因此,它看起來像你剛纔有第二條路線的一個問題:

$route['dashboard/(:any)'] = 'admin/dashboard/$1'; 

因爲,管理是文件夾,仔細檢查該值由途徑傳入實際上是一個方法在您的dashboard控制器類中。

此外,檢查出這個問題並接受答案:routing controllers in sub folders - codeigniter我認爲它提供了一個你正在嘗試做的例子。

+0

管理員是一個文件夾和儀表板是控制器,我得到404的儀表板/添加/ – murtazamzk 2014-12-07 09:28:33

+0

好吧,不知道。如果'dashboard'是控制器,那麼我認爲'(:any)'作爲該控制器中的函數來傳遞。因此,根據錯誤,它看起來像任何函數名稱被傳遞它不在控制器中找到。 – dmullings 2014-12-07 14:46:40

相關問題