back

複数テーブルの連携 (3/5)

■エンティティを用意する

では、モデル関係のソースコードを用意していきましょう。まずは、エンティティからです。ここでは「Model」内の「Entity」フォルダ内に、「Member.php」「Message.php」という2つのファイルを作成します。

ソースコードは、下のリスト欄のようになります。エンティティクラスは、既に説明したように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,
    ];
}



   

記事のリストに戻る



PC Site G+ mail