MVC(Model View Controller)の「C」にあたるコントローラーを作成します。
コントローラーは、ビューから(今回の場合、ブラウザから)の入力を受けモデルへの処理を依頼したり ビューによる表示を依頼するといった制御を受け持ちます。
参考:「MVCモデルとは何ですか・・・」など
コントローラーの命名規約は次のようになっています。
<?php class ForumsController extends AppController { var $name = 'Forums'; } ?>
forums_controller.php
CakePHPでは、リクエストされるURLにコントローラーおよび処理(アクション)を指定します。
http://*****/コントローラー名/アクション名(メソッド)/
URLに指定されたコントローラーとアクションは、mod_rewriteによって変換され指定されたコントローラー のインスタンスを作成し、メソッド(アクション)を呼び出します。
【関連:mod_rewrite の設定】
例えば、ForumsControllerクラスのindexメソッドを実行するには、「http://www.hoge.net/forums/index」のように リクエストします。ForumsControllerクラスのメソッドに必要なアクションを追加していくことでさまざまな処理に 対応していきます。
また、「http://www.hoge.net/forums」のようにアクション名(メソッド)を省略するとデフォルトで index(メソッド)が呼ばれます。
ここでは、Forumsコントロールを作成しメソッドにindexを実装します。使用するモデルは、前回作成した Categoryを指定しています。
<?php class ForumsController extends AppController { var $name = 'Forums'; var $uses = array('Category'); function index() { $this->set('categories',$this->Category->findAll()); } } ?>
CakePHPの命名規約に従ってAppControllerを派生した、ForumsControllerクラスを作成します。
var $usesは、使用するモデルを設定します。$usesを指定しない場合、コントロール名の単数形のモデルが自動的に使用されます。 また、複数のモデルを指定する場合、配列でモデルを指定する必要があります。
ここでは、今後postなど別のモデルが増えそうなので配列に設定しています。
次にアクションにあたるメソッドを実装します。indexメソッドでは、ビューにデータを渡せるようCategoryモデルを使って データベースからデータを取得するよう実装しています。
上記例の場合、「categories」という変数にCategoryで取得したデータが設定されます。
Copyright 1997-2010 BBB All rights reserved.