モデルとデータベース (4/5)
作成:2015-09-12 10:42
更新:2015-09-12 10:42
更新:2015-09-12 10:42
■テーブルクラスについて
続いて、テーブルクラスを見てみましょう。これは、「Table」フォルダの中に用意されています。ここにある「PersonsTable.php」というのがpersonsテーブル用に作られたテーブルクラスのソースコードです。このようにテーブルクラスは、「テーブル名Table」といった形で命名されるのが基本です。
生成されたコードを下に掲載しておきましょう。こちらは、思ったよりもいろいろと書きだされていることがわかりますね。では、ポイントを整理しましょう。
・名前空間について
テーブルクラスは、「Table」というクラスを継承して作成します。このTableは、App\Model\Tableという名前空間に配置されています。テーブルクラスも、ここに配置します。
・using文
テーブルクラスでは、デフォルトでいくつかのコードが生成されており、それらの中でいくつかのクラスが利用されています。デフォルトでいくつも書かれていますが、これらは「こんなもの自分は利用しない」と思っても削除しないようにしましょう。
・Tableクラス
既に述べたようにテーブルクラスは「Table」というクラスを継承して作成します。クラス定義の部分を見ると、「class PersonsTable extends Table」というようにextends Tableしていることがわかるでしょう。テーブルクラスは、必ずこのようにTableを継承して作ります。
――クラスの定義そのものはそれほど難しくはありません。問題は、その中にあるメソッドでしょう。デフォルトで、具体的なコードが自動生成されているのですから。これらのメソッドの働きを見てみましょう。
生成されたコードを下に掲載しておきましょう。こちらは、思ったよりもいろいろと書きだされていることがわかりますね。では、ポイントを整理しましょう。
・名前空間について
テーブルクラスは、「Table」というクラスを継承して作成します。このTableは、App\Model\Tableという名前空間に配置されています。テーブルクラスも、ここに配置します。
・using文
テーブルクラスでは、デフォルトでいくつかのコードが生成されており、それらの中でいくつかのクラスが利用されています。デフォルトでいくつも書かれていますが、これらは「こんなもの自分は利用しない」と思っても削除しないようにしましょう。
・Tableクラス
既に述べたようにテーブルクラスは「Table」というクラスを継承して作成します。クラス定義の部分を見ると、「class PersonsTable extends Table」というようにextends Tableしていることがわかるでしょう。テーブルクラスは、必ずこのようにTableを継承して作ります。
――クラスの定義そのものはそれほど難しくはありません。問題は、その中にあるメソッドでしょう。デフォルトで、具体的なコードが自動生成されているのですから。これらのメソッドの働きを見てみましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<?php namespace App\Model\Table; use App\Model\Entity\Person; use Cake\ORM\Query; use Cake\ORM\RulesChecker; use Cake\ORM\Table; use Cake\Validation\Validator; class PersonsTable extends Table { public function initialize(array $config) { parent::initialize($config); $this->table('persons'); $this->displayField('name'); $this->primaryKey('id'); } public function validationDefault(Validator $validator) { $validator ->add('id', 'valid', ['rule' => 'numeric']) ->allowEmpty('id', 'create'); $validator ->requirePresence('name', 'create') ->notEmpty('name'); $validator ->add('age', 'valid', ['rule' => 'numeric']) ->allowEmpty('age'); $validator ->allowEmpty('mail'); return $validator; } }
※関連コンテンツ
「初心者のためのCakePHP3 プログラミング入門」に戻る