我怎樣才能讓一個控制器,這將在以下網址進行訪問:代碼點火控制器網頁
/index.php/my_controller/controller_function/another_function
或
/index.php/account/profile/edit
我知道這是可能的,但我不能找到任何網站,這將解釋這一點,從手冊我讀過,控制器應該在文件夾中,但那又怎樣?
我怎樣才能讓一個控制器,這將在以下網址進行訪問:代碼點火控制器網頁
/index.php/my_controller/controller_function/another_function
或
/index.php/account/profile/edit
我知道這是可能的,但我不能找到任何網站,這將解釋這一點,從手冊我讀過,控制器應該在文件夾中,但那又怎樣?
建立一個叫做class Account extends CI_Controller
控制器,它具有方法profile
,服用$action
一個參數 - 這將自動edit
當您訪問/account/profile/edit
來填補。
public function profile ($action = '')
{
switch ($action)
{
case 'edit':
$this->show_edit_account();
break;
default:
$this->show_default_action();
break;
}
}
protected function show_edit_account()
{
echo 'Edit account!';
}
作爲替代喬的回答,我發現我的代碼更容易組織時,我只是直接映射到我的URL路徑,而不是調用等功能看到一個控制器功能。根據您計劃在帳戶類中做多少事情,從單一控制器維護可能會很麻煩。因此,如果您所要做的只是實現特定的URL結構,則可以將控制器嵌套在CodeIgniter控制器文件夾的子文件夾中。
所以/index.php/account/profile/edit
將映射到/application/controllers/account/profile.php
和edit
將是profile.php
內的函數。這樣,您也可以爲賬戶內的不同功能維護單獨的控制器。例如除了配置文件外,您還可以製作一個單獨的delete.php
控制器來處理帳戶刪除。
你可以閱讀更多關於如何笨將URL映射到控制器,功能和手動變量:http://codeigniter.com/user_guide/general/urls.html
要把它可以訪問來自他們的(如果是的話,我建議使用「AND」,不「或」在你的問題;))?你有沒有看過http://www.codeigniter.fr/user_guide/general/routing.html? – SCO 2012-02-12 21:29:51