モデルを使ってデータベースにアクセスする (5/7)
作成:2010-02-18 11:40
更新:2010-05-10 19:27
更新:2010-05-10 19:27
■コントローラーを作る
続いて、コントローラーを作成します。モデルを利用したアプリケーションを作る場合、CakePHPでは「モデルもコントローラーも、決まった命名規則に従って作る」という決まりになっています。モデルを利用するコントローラーは、「名前Controller」という名前で用意することになっています。
今回は「Mydata」というモデルを使いますので、コントローラーのファイルは「mydatas_controller.php」となります。そして用意するクラス名は「MydatasController」という名前になるのです。
では、「controllers」フォルダ内にファイルを作成し、以下のリストのようにソースコードを記述しましょう。とりあえず、indexアクションだけを用意しておきました。
コントローラーは、メンバー変数類とアクションメソッド(index)が用意されています。が、実を言えば、レイアウトを設定する$layout以外のメンバー変数は、全部なくてもいいです。これらは、命名規則に従って作ってあれば、$nameも$usesも書かなくてもちゃんと正しく認識してくれるんです。「一応、こういう変数で名前やモデル名を認識するようになっている」ということを示すために書いておきましたが、普通は省略して書きません。
さて、indexでは、Mydataからすべてのデータを取得してビューに渡す処理を用意してあります。全データを取得するのは、
今回は、取り出したデータをそのまま"datas"という名前でビューに渡しています。データの表示は、ビュー側で処理を用意しようというわけです。
今回は「Mydata」というモデルを使いますので、コントローラーのファイルは「mydatas_controller.php」となります。そして用意するクラス名は「MydatasController」という名前になるのです。
では、「controllers」フォルダ内にファイルを作成し、以下のリストのようにソースコードを記述しましょう。とりあえず、indexアクションだけを用意しておきました。
コントローラーは、メンバー変数類とアクションメソッド(index)が用意されています。が、実を言えば、レイアウトを設定する$layout以外のメンバー変数は、全部なくてもいいです。これらは、命名規則に従って作ってあれば、$nameも$usesも書かなくてもちゃんと正しく認識してくれるんです。「一応、こういう変数で名前やモデル名を認識するようになっている」ということを示すために書いておきましたが、普通は省略して書きません。
さて、indexでは、Mydataからすべてのデータを取得してビューに渡す処理を用意してあります。全データを取得するのは、
$datas = $this->Mydata->find("all");この部分です。コントローラーでは、「$this->モデル名」という形で、モデルが用意されます。このモデルの中に、データベースにアクセスするための機能が用意されています。今回使っている「find」は、引数に指定したデータを取り出すためのものです。"all"と指定することで、全データを取り出すことができます。
今回は、取り出したデータをそのまま"datas"という名前でビューに渡しています。データの表示は、ビュー側で処理を用意しようというわけです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<?php class MydatasController extends AppController { public $name = "mydatas"; // なくてもいい public $uses = "Mydata"; // なくてもいい public $autoRender = true; // なくてもいい public $layout = "sample"; public $autoLayout = true; // なくてもいい function index(){ $this->set("page_title","Sample Page"); $this->set("content_header","Sample Page."); $this->set("content_footer","copyright SYODA-Tuyano. 2010."); $datas = $this->Mydata->find("all"); $this->set("datas",$datas); } }
※関連コンテンツ
「初心者のためのCakePHP 1.3 プログラミング入門」に戻る