使用任何其他控制器类而不是默认控制器类

时间:2012-08-15 13:43:33

标签: php codeigniter codeigniter-routing

我正在使用CodeIgniter。这是我的路由文件

    $route['default_controller'] = 'pages/view/home';
    $route['(:any)'] = 'pages/view/$1';

,其中

  

pages是控制器类,view是它的函数,home是该函数的参数。

现在,这是默认控制器。当我需要打开另一个页面而不是“主页”时,我会在视图中执行以下操作

href="<?php echo base_url('products');?>

现在我要问的是,如果我创建一个新的控制器,我该如何使用该控制器的功能?因为我只将第三个参数传递给base_url()函数。

显然我觉得我要写$ route,但是怎么样?因为所有流量都传递给

  

页/图

我尝试创建一个新的控制器但无法使用它。我的新控制器名为new_controller,它有一个函数调用new_function()

我写了$ route如下

  

$ route ['pages / view / product'] ='new_controller / new_function';

2 个答案:

答案 0 :(得分:1)

如果你带走了那里的(:any)路线,你不必担心路线。我认为这阻止了所有其他控制器的加载。

如果您有一个名为“Stuff”的控制器

当您拥有mysite.com/stuff/foo/param时,在您的URL中

Code Igniter应绕过默认的“page”控制器并使用

我认为你做这样的事情会更好

$route['page/(:any)'] = "page/view/$1";

并将默认设置更改为“网页”

这会打开你的新控制器,以正常的codeigniter方式使用

答案 1 :(得分:0)

在CodeIgniter中,路由按行评估,所以首先你有默认路由,然后你可以放置新路由,$ route ['pages / view / product'],如果你想保留(:any)路由,并且通过这种方式,您可以将特殊路由放在(:any)路由之前。