2012-02-12 8 views
0

CodeIgniterのコントローラページ私は、次のURLアドレスにアクセスできるようになり、コントローラを作ることができますどのよう

/index.php/my_controller/controller_function/another_function 

または

/index.php/account/profile/edit 

私はそれが可能である知っているが、私はいずれかを見つけるカントこれを説明するサイトは、私が読んだマニュアルから、コントローラはフォルダ内にあるはずですが、それではどうしますか?

+0

「AND」あなたの質問で "OR")))?あなたはhttp://www.codeigniter.fr/user_guide/general/routing.htmlを見ましたか? – SCO

答えて

1

$actionのパラメータを取り、方法profileを持ってclass Account extends CI_Controllerと呼ばれるコントローラを、作る - あなたは/account/profile/editを訪れたときに、これは自動的に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.phpにマップされ、editprofile.phpの関数になります。このようにして、アカウント内の異なる機能用に別々のコントローラを管理することもできます。例えばプロファイルに加えて、別のdelete.phpコントローラを作成してアカウントの削除を処理することもできます。

あなたは手動でコントローラ、関数、変数にどのようにCodeIgniterのマップのURLで詳細を読むことができます:、ない場合には(私が使用することをお勧めしたい、それはそれらの両方からアクセス可能でなければならhttp://codeigniter.com/user_guide/general/urls.html

関連する問題