2011-05-30 105 views
3

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

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

回答

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

我建议您阅读this guide,了解如何通过登录检查来扩展您的控制器(在这种情况下为register)。这将使您在register控制器的index功能中拥有受保护的代码。并在任何其他控制器,你可能想添加。我认为在你的方法中,现在你有可能拥有一台高性能的控制器,而不是拥有几个更小的控制器,而且结构和概述都更多一些。