3

如果这是一个“duh”问题,或者如果您需要更多信息来回答,请原谅我,我是 CodeIgniter 的新手,但仍然没有找到一些具有最佳实践的东西......

routes.php我有$route['default_controller'] = "home";所以我default_controller的显然是“家”。

在我的home.php控制器内部,我有:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller {
    function __construct() {
        // blah
    }
    function index(){
        // blah
    }
    function login(){
        // blah
    }
}

哪个工作正常,一切正常,没有问题。我唯一不知道的是,如果我想访问该login功能,我目前必须去 www.blah.com/home/login。我怎样才能改变它,让它只进入 www.blah.com/login,而不创建一个新的控制器 (我想把其中一些一次性的基准 URL 都保留在我的默认控制器中)? 这甚至可能还是我只需要创建一个新控制器?

如果我只需要创建一个新控制器,是否有关于您拥有多少控制器等的最佳实践?

4

3 回答 3

4

文档说:如果 URL 中提供的那些 URI 段无法与有效路由匹配,该路由将告诉路由器使用哪些 URI 段。

所以使用$route['login'] = 'home/login';

于 2012-12-04T15:02:38.920 回答
0

我设置它的方式是让该index功能充当看门人:如果未登录,则显示登录表单view,如果已登录,则重定向到您的(受保护的)主页。该login功能只能通过post, 当用户提交他的登录名/密码并执行登录逻辑时访问。

于 2012-12-04T15:05:27.910 回答
0

您需要在application/config/routes.php文件中添加一行

$route['login'] = "home/login";
于 2012-12-04T15:12:06.267 回答