2014-12-07 180 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

相关问题