CakePHP テーブルクラスとエンティティクラスについて(その1)
- 2020年2月06日
- 技術情報
今回はCakePHPのテーブルクラスとエンティティクラスについての説明をおこないます。
本記事はCakePHPでデータベースとの接続が完了していることが前提となります。詳しくは前回の記事「CakePHP データベースとの接続」をご参照ください。
CakePHPでテーブルクラスとエンティティクラスの作成をおこなうにあたり、下記の命名ルールがあります。
・テーブル名は複数形
・テーブルクラスはテーブル名+Tableをつける
・エンティティクラスはテーブル名の単数形
CakePHPと連携しているデータベースに、生徒情報を保存する「students」テーブルがあると仮定します。
CREATE TABLE `students` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`mail` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
)
上記のstudentsテーブルに対応するテーブルクラスとエンティティクラスの
作成をおこないます。
■テーブルクラスの作成
テーブル名が「students」なので、テーブルクラスの名称は「StudentsTable.php」に設定します。
テーブルクラスは以下の階層に作成します。
C:\xampp\htdocs\caketest\src\Model\Table\StudentsTable.php
<?php
namespace App\Model\Table;
use Cake\ORM\Table;
class StudentsTable extends Table{
}
■エンティティクラスの作成
テーブル名が「students」なので、エンティティクラスクラスの名称は「Student.php」に設定します。
エンティティクラスクラスは以下の階層に作成します。
C:\xampp\htdocs\caketest\src\Model\Entity\Student.php
<?php
namespace App\Model\Entity;
use Cake\ORM\Entity;
class Student extends Entity{
}
現状では、テーブルクラスおよびエンティティクラスの中には処理はひとつもない状態ですが、この状態で基本動作の確認が可能です。
次回はコントローラークラスから、テーブルクラスおよびエンティティクラスにアクセスをおこない、データベースに保存されているレコード内容をビューに表示する方法の説明をおこないたいと思います。
木曜日担当:nishida
nishida at 2020年02月06日 10:00:25