【问题标题】:Using any other controller class rather than the default controller class使用任何其他控制器类而不是默认控制器类
【发布时间】:2012-08-15 13:43:33
【问题描述】:

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

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

在哪里

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

现在,这是默认控制器。当我需要打开其他页面而不是“主页”时,我会从视图内部进行如下操作

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

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

显然我想我必须写 $routes,但是怎么写呢?因为所有的流量都传递给了

页面/视图

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

我写的 $route 如下

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

【问题讨论】:

    标签: php codeigniter codeigniter-routing


    【解决方案1】:

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

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

    当您拥有 mysite.com/stuff/foo/param 时,在您的 URL 中代码 Igniter 应该绕过默认的“页面”控制器并使用

    我认为你最好做这样的事情

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

    并将您的默认设置更改为仅“页面”

    这将打开您的新控制器,以便以正常的 codeigniter 方式使用

    【讨论】:

      【解决方案2】:

      在 CodeIgniter 中,路由是按行评估的,所以首先你有默认路由,然后你放置新路由 $route['pages/view/product'],如果你想保留 (:any ) 路线,这样,您就可以将例外路线放在 (:any) 路线之前。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多