エンティティ
テーブルとエンティティ
テーブル
データのコレクションにアクセスする。新しいレコードを保存したり、 既存データの編集/削除、リレーションの定義、そして一括処理ができる。
エンティティ
レコードレベルの振る舞いや機能の定義を行う。
エンティティの生成
エンティティクラスの生成
<?php // src/Model/Entity/Article.php namespace App\Model\Entity; use Cake\ORM\Entity; class Article extends Entity { } ?>
コントローラなどでエンティティクラスをロードし、エンティティを生成。
<?php use App\Model\Entity\Article; $article = new Article([ 'id' => 1, 'title' => 'New Article', 'created' => new DateTime('now') ]); ?>
エンティティのデータへのアクセス
<?php use App\Model\Entity\Article; $article = new Article; $article->title = 'This is my first post'; // 書き込み echo $article->title; // 読み取り ?>
getとsetメソッドでも可。
<?php $article->set('title', 'This is my first post'); echo $article->get('title'); ?>
バリデーションエラーへのアクセス
<?php $user->getErrors(); // エラーの取得 $user->getError('password'); // 1つのフィールドのエラーを取得 $user->hasErrors(); // エンティティーまたはネストされたエンティティーにエラーがあるか $user->hasErrors(false); // ルートエンティティーのみにエラーがあるか $user->setError('password', ['Password is required']); // ?>
マスアサインメントの設定
_accessibleプロパティにより、一括代入できるプロパティを指定する。
<?php namespace App\Model\Entity; use Cake\ORM\Entity; class Article extends Entity { protected $_accessible = [ 'title' => true, 'body' => true, ]; } ?>