2012-12-04 86 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"; 
相關問題