テーブル

テーブルとエンティティ

テーブル

データのコレクションにアクセスする。新しいレコードを保存したり、 既存データの編集/削除、リレーションの定義、そして一括処理ができる。

エンティティ

レコードレベルの振る舞いや機能の定義を行う。

テーブルオブジェクトの使い方

まずsetTableで使用するテーブル名をORMに伝える。

<?php
// src/Model/Table/ArticlesTable.php
namespace App\Model\Table;

use Cake\ORM\Table;

class ArticlesTable extends Table
{
    public function initialize(array $config)
    {
        $this->setTable('articles');
    }
}
?>

テーブルにクエリーを実行する前に、テーブルインスタンスを取得する必要がある。 TableRegistry クラスを使用することで取得。

<?php
use Cake\ORM\TableRegistry;
?>

テーブルのコールバック

  • initialize コンストラクターと initialize メソッドが呼ばれた後に発行
  • beforeMarshal リクエストデータがエンティティに変換される前に発行 リクエストデータを変更する必要があるとき
  • beforeFind 各find操作の前に発行
  • buildValidator $nameバリデーターが作られたときに発行
ルールに関するコールバック
  • buildRules ルールインスタンスが作られた後に発行
  • beforeRules エンティティにルールが適用される前に発行
  • afterRules エンティティにルールが適用された後に発行
保存処理に関するコールバック
  • beforeSave エンティティが保存される前に発行
  • afterSave エンティティが保存された後に発行
  • afterSaveCommit 保存処理がラップされたトランザクションがコミットされた後に発行
削除処理に関するコールバック
  • beforeDelete エンティティを削除する前に発行
  • afterDelete エンティティを削除した後に発行
  • afterDeleteCommit 削除処理がラップされたトランザクションがコミットされた後に発行