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 同じテーブルに二つアソシエーションを作る
で紹介しているようにも使えます。