Attention! Translated article might be found on my English blog.

2015年1月28日水曜日

CakePHPのモデルでテーブル名を指定する

参考: モデルの属性 — CakePHP Cookbook 2.x ドキュメント
参考: cakephpのmodelでテーブルを指定する | イテルの一日一問

既存DBのテーブル名だと微妙にCakePHPの命名規則と合わない。そんなとき!
ModelクラスのuseTableプロパティを明記することで任意のテーブルを指定できるようです。
例えばLogというモデル名の場合、デフォルト動作ではlogsというテーブルが参照されますが、

class Log extends AppModel {
    var $useTable = 'log';
}

と、useTableを明記することで好きなテーブルを参照することが可能です。

フレームワーク側との命名規則の不一致やよじれはモデルで吸収して、ビューやコントローラはなるべくCakePHPの命名規則に従うのが良いかもですね。