2012-12-04 49 views
3

请原谅我,如果这是一个“嗯”的问题,或者如果您需要更多信息来回答,我是CodeIgniter的新手,仍然没有想出一些最佳实践等等...没有控制器名称的CodeIgniter“default_controller”函数在URL中

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,没有创建一个新的控制器(我想保留一些这些一次性基地网址都在我的默认控制器)?这甚至可能或者我只需要创建一个新的控制器?

如果我只需要创建一个新的,是有多少个控制器,你必须等一个最佳实践

+0

我发现我可以做“$路线[‘登录’] =‘/家庭/登录’;”作为解决这个问题的途径,但这是否正确?有没有更好的办法? –

+0

好吧..如果你不喜欢CI标准路线行为,路线是要走的路 –

回答

4

文件说:这条路线将告诉路由器如果要使用的URI段在URL中提供的那些不能匹配到有效的路由。

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

0

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

0

你需要一个行添加到您的application/config/routes.php文件

$route['login'] = "home/login"; 
相关问题