モデルとデータベース (4/5)
作成:2011-11-14 07:58
更新:2011-12-06 19:29
更新:2011-12-06 19:29
■Modelクラスを用意する
では、モデル(Model)を作成しましょう。モデルは、「app」フォルダ内の「Model」フォルダ内に用意します。ここに、使用するテーブル名のファイルとして作成をします。が、このファイル名がなかなかクセモノなのです。今回作成するファイルは、
テーブル名:my_sample_datas
Modelファイル名:MySampleData.php
――となります。my_sample_datasというように複数の単語をアンダースコアでつなげたテーブル名の場合、各単語の一文字目を大文字にしてひとつなぎにしたものがモデル名になります。つまり、「MySampleData」ですね。
注意したいのは、「MySampleDatas」ではない、という点です。Modelクラスでは、複数形のsはつかないのです。また、テーブル名を「sample_data」のように単数形にした場合、Model名は「SampleDatum」という日本人にはなんだかよくわからないものに変化してしまいます。これは、正直、日本人にはわかりにくいので、もしそれぞれで新たにモデルを設計する場合は「テーブル名には複数形のsがつき、Modelにはつかない」という決まりに従って名前をつけましょう。
さて、肝心のModelクラスですが、もっともシンプルな形は下のソースコードのようになるでしょう。モデルは、「AppModel」というクラスを継承して作成します。このクラスは、Modelライブラリに用意されているので、App:usesで必ず読み込んでおくようにします。
それ以外は? 実は、何もいりません。AppModelには、値のチェック(バリデーション)機能や、他のモデルとの連携機能などさまざまな機能が用意されていますが、「ただテーブルにアクセスしてデータをやり取りするだけ」なら、何も用意する必要はありません。ただし、クラスだけは必要です。クラスそのものがないと認識しないので。「空っぽのクラス」でOKなのです。
テーブル名:my_sample_datas
Modelファイル名:MySampleData.php
――となります。my_sample_datasというように複数の単語をアンダースコアでつなげたテーブル名の場合、各単語の一文字目を大文字にしてひとつなぎにしたものがモデル名になります。つまり、「MySampleData」ですね。
注意したいのは、「MySampleDatas」ではない、という点です。Modelクラスでは、複数形のsはつかないのです。また、テーブル名を「sample_data」のように単数形にした場合、Model名は「SampleDatum」という日本人にはなんだかよくわからないものに変化してしまいます。これは、正直、日本人にはわかりにくいので、もしそれぞれで新たにモデルを設計する場合は「テーブル名には複数形のsがつき、Modelにはつかない」という決まりに従って名前をつけましょう。
さて、肝心のModelクラスですが、もっともシンプルな形は下のソースコードのようになるでしょう。モデルは、「AppModel」というクラスを継承して作成します。このクラスは、Modelライブラリに用意されているので、App:usesで必ず読み込んでおくようにします。
それ以外は? 実は、何もいりません。AppModelには、値のチェック(バリデーション)機能や、他のモデルとの連携機能などさまざまな機能が用意されていますが、「ただテーブルにアクセスしてデータをやり取りするだけ」なら、何も用意する必要はありません。ただし、クラスだけは必要です。クラスそのものがないと認識しないので。「空っぽのクラス」でOKなのです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※Modelクラス <?php App::uses('AppModel', 'Model'); class MySampleData extends AppModel { }
※関連コンテンツ
「初心者のためのCakePHP2 プログラミング入門」に戻る