複数テーブルの連携 (3/5)
作成:2015-10-24 09:14
更新:2015-10-24 09:14
更新:2015-10-24 09:14
■エンティティを用意する
では、モデル関係のソースコードを用意していきましょう。まずは、エンティティからです。ここでは「Model」内の「Entity」フォルダ内に、「Member.php」「Message.php」という2つのファイルを作成します。
ソースコードは、下のリスト欄のようになります。エンティティクラスは、既に説明したようにEntityを継承して作成します。クラス内には、$_accessibleという変数だけが用意されていますね。ここで、アクセスするプロパティの項目として、idだけをfalse、それ以外をtrueに設定しています。
この辺りは、基本的に既に作成した普通のエンティティと何ら変わりありません。アソシエーションに関する機能は、エンティティには特に用意されていないことがわかるでしょう。
ソースコードは、下のリスト欄のようになります。エンティティクラスは、既に説明したようにEntityを継承して作成します。クラス内には、$_accessibleという変数だけが用意されていますね。ここで、アクセスするプロパティの項目として、idだけをfalse、それ以外をtrueに設定しています。
この辺りは、基本的に既に作成した普通のエンティティと何ら変わりありません。アソシエーションに関する機能は、エンティティには特に用意されていないことがわかるでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
// ※Memberエンティティ
<?php
namespace App\Model\Entity;
use Cake\ORM\Entity;
/**
* Member Entity.
*
* @property int $id
* @property string $name
* @property string $mail
* @property \App\Model\Entity\Message[] $messages
*/
class Member extends Entity
{
protected $_accessible = [
'*' => true,
'id' => false,
];
}
// ※Messageエンティティ
<?php
namespace App\Model\Entity;
use Cake\ORM\Entity;
/**
* Message Entity.
*
* @property int $id
* @property int $members_id
* @property \App\Model\Entity\Member $member
* @property string $title
* @property string $comment
*/
class Message extends Entity
{
protected $_accessible = [
'*' => true,
'id' => false,
];
}
※関連コンテンツ
「初心者のためのCakePHP3 プログラミング入門」に戻る