【问题标题】:Basic question about CodeIgniter URL关于 CodeIgniter URL 的基本问题
【发布时间】:2011-05-30 05:39:46
【问题描述】:

当我在 CodeIgniter 中创建控制器时,例如“login.php”。我在其中创建了一个公共函数“index”,并在函数中加载了一个视图“login_form”,CodeIgniter 生成了 url localhost/test/login

现在,如果我在同一个控制器中创建另一个函数“注册”,则 URL 将是 localhost/test/login/register,但我想创建像 localhost/test/register 这样的 URL。我是否需要创建一个新的控制器注册并在其中创建索引功能,或者可以通过在登录控制器中添加功能来生成相同的 URL。 “通常”的做法是什么? 谢谢。

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    如前所述,您可以(并且很可能应该)为此使用route

    // config/routes.php
    $route['register'] = 'test/register';
    

    这基本上是说:如果请求/register,请给他们/test/register

    请注意,/test/register 仍然有效。如果你出于某种原因想要禁用它,你可以这样做:

    $route['test/register'] = FALSE; // Or map to your 404 page
    

    ...但一般情况下您不需要。

    请注意,使用路由不会神奇地重写您的链接或任何东西,它只是在发出请求时将请求路由到其他地方。

    Remapping 很酷,但你要问的绝对是一条路线的工作。仔细阅读用户指南,您可以使用它们做很多事情。

    【讨论】:

      【解决方案2】:

      您可以使用以下方法之一来达到预期的结果:

      更多关于 MVC 的信息可以找到here

      【讨论】:

        【解决方案3】:

        我建议阅读this guide,了解如何通过登录检查扩展您的控制器(在本例中为register)。这将使您在register 控制器的index 函数中拥有受保护的代码。并且在您可能想要添加的任何其他控制器中。我认为在你现在的方法中,你有可能拥有一个巨大的 login 控制器,而不是拥有几个具有更多结构和概述的较小控制器。

        【讨论】:

          猜你喜欢
          • 2016-04-05
          • 2011-09-23
          • 2013-10-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多