1
我有兩個不同的控制器,我想要路由到相同的URL。具有相同名稱的CodeIgniter路由
例如,
$route['dashboard/(:any)'] = 'admin/crud/$1';
$route['dashboard/(:any)'] = 'admin/dashboard/$1';
但是這是導致404錯誤。
我猜想:any
通配符有問題。
有沒有其他的使用方法?
我有兩個不同的控制器,我想要路由到相同的URL。具有相同名稱的CodeIgniter路由
例如,
$route['dashboard/(:any)'] = 'admin/crud/$1';
$route['dashboard/(:any)'] = 'admin/dashboard/$1';
但是這是導致404錯誤。
我猜想:any
通配符有問題。
有沒有其他的使用方法?
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我認爲它提供了一個你正在嘗試做的例子。
管理員是一個文件夾和儀表板是控制器,我得到404的儀表板/添加/ – murtazamzk 2014-12-07 09:28:33
好吧,不知道。如果'dashboard'是控制器,那麼我認爲'(:any)'作爲該控制器中的函數來傳遞。因此,根據錯誤,它看起來像任何函數名稱被傳遞它不在控制器中找到。 – dmullings 2014-12-07 14:46:40