关于CodeIgniter URL的基本问题

时间:2011-05-30 05:39:47

标签: php codeigniter

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

现在,如果我在同一个Controller中创建另一个函数“register”,则该网址将为localhost/test/login/register,但我想创建类似localhost/test/register的网址。我是否需要创建一个新的控制器寄存器并使其成为索引函数,或者可以通过在登录控制器中添加函数来生成相同的URL。这种“通常”的做法是什么? 感谢。

3 个答案:

答案 0 :(得分:5)

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

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

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

请注意,/test/register仍然有效。如果由于某种原因要禁用它,可以执行以下操作:

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

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

请注意,路线的使用不会神奇地重写您的链接或任何内容,只需路由该请求在其他地方。

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

答案 1 :(得分:1)

您可以使用以下其中一项来达到预期效果:

有关MVC的更多信息,请访问here

答案 2 :(得分:1)

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