2011-05-30 104 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功能中擁有受保護的代碼。並在任何其他控制器,你可能想添加。我認爲在你的方法中,現在你有可能擁有一臺高性能的控制器,而不是擁有幾個更小的控制器,而且結構和概述都更多一些。