CakePHPは、何も設定を行わない場合、app/webroot/内のファイルにアクセスを試みます。
実ファイルがあれば、そのファイルを表示し、なければ、Mod_Rewriteを利用し、URLを引き数とした状態で、app/webroot/index.phpへアクセスする事となります。
実ファイルがない場合、以下のURL構成が基本となります。
http://Cakeのパス/コントローラ名/アクション名/パラメータ1/パラメータ2/...
上記のパスにアクセスした場合、コントローラークラスのアクションメソッドが呼び出されます。
アクションメソッドの処理が完了後、自動的に、対応したビューを利用し、ブラウザに表示します。
そして、コントローラーに対応するモデルが存在する場合には、コントローラー内で、対応するモデルが自動的に利用可能となります。
「対応する」という表現を用いていますが、CakePHPでは、各MVCがファイル名で関連付けられています。
例えば、testsというテーブルに関連するMVCは以下のようなファイル名、クラス名をつけるにより関連付けられる事となります。
※ テーブル名は、複数形の名称が推奨されています。
【Controller】
ファイル名・・・tests_controller.php
クラス名・・・・TestsController
※ 名称に複数形が用いられる
【Model】
ファイル名・・・test.php
クラス名・・・・Test
※ 名称に単数形が用いられる
【view】
ファイル名・・・tests/アクション名.thtml
※ ディレクトリ名称に複数形が用いられる
ただ、これらの名称は、基本的なコード規約を意味しており、上記の通りに名前を付けられない場合にも対応する事ができます。
■コントローラーで、名称の違うテーブルを利用する
コントローラークラス内で、以下の変数を宣言します。
var use = array('Model1','Model2');
■コントローラー上で表示するviewを切り替える
$this->render(view名);
※ renderは、描画を行う(HTMLを出力する)メソッドです。
- Newer: CakePHP データベースに直接関連しないControllerの作成
- Older: CakePHPのインストール