2012-02-12 71 views
0

我怎樣才能讓一個控制器,這將在以下網址進行訪問:代碼點火控制器網頁

/index.php/my_controller/controller_function/another_function 

/index.php/account/profile/edit 

我知道這是可能的,但我不能找到任何網站,這將解釋這一點,從手冊我讀過,控制器應該在文件夾中,但那又怎樣?

+0

要把它可以訪問來自他們的(如果是的話,我建議使用「AND」,不「或」在你的問題;))?你有沒有看過http://www.codeigniter.fr/user_guide/general/routing.html? – SCO 2012-02-12 21:29:51

回答

1

建立一個叫做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!'; 
} 
1

作爲替代喬的回答,我發現我的代碼更容易組織時,我只是直接映射到我的URL路徑,而不是調用等功能看到一個控制器功能。根據您計劃在帳戶類中做多少事情,從單一控制器維護可能會很麻煩。因此,如果您所要做的只是實現特定的URL結構,則可以將控制器嵌套在CodeIgniter控制器文件夾的子文件夾中。

所以/index.php/account/profile/edit將映射到/application/controllers/account/profile.phpedit將是profile.php內的函數。這樣,您也可以爲賬戶內的不同功能維護單獨的控制器。例如除了配置文件外,您還可以製作一個單獨的delete.php控制器來處理帳戶刪除。

你可以閱讀更多關於如何笨將URL映射到控制器,功能和手動變量:http://codeigniter.com/user_guide/general/urls.html