CakePHP3 テーブルに別名をつける

PHP
CakePHP3.2.11

データを取得してくるときに、CakePHPのデフォルトでは普通にテーブル名がオブジェクトになって返ってきますね。

それを変更したいとき、MySQLでよくあるように as で名前を変更できるか(別名をつけられるか)と思いきや、できないんですね~。

こんな時、アソシエーションの定義を利用することができます。

詳しくは、下記のページをご参照ください。
http://book.cakephp.org/3.0/ja/orm/associations.html

例えば、モデルの中で次のようにすると、

 class ArticlesTable extends Table
 {
 
    public function initialize(array $config)
    {
        $this->hasMany('Comments', [
            'className' => 'Comments',
       ]);
 
        $this->hasMany('UnapprovedComments', [
            'className' => 'Comments',
        ]);
    }
 }

オブジェクトの名前を’Comments’でも、’UnapprovedComments’でも使えます。(^_^)

この使い方は便利で、
CakePHP3 同じテーブルに二つアソシエーションを作る
で紹介しているようにも使えます。

カテゴリーPHP

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です