CakePHPのModelで、既定のプライマリキーのデフォルトカラム名「id」を別のカラム名に変更したい

CakePHP2でテーブルへのINSERTをしていたのだが、どうも期待する動作にならずデータが上書きされるというUPDATE処理になっている。確認すると実際にUPDATEが実行されていた。Model::save()を使っているとプライマリキーを調べてから更新処理か新規作成処理かを判断するようなので、おそらくはプライマリキーが適切に扱われていないのだろう。そう想像する理由は、テーブル中にある「id」というカラム名はプライマリキーとして使われているカラムではなく別の利用がされていて、本当のプライマリキーはnoというカラムだった。CakePHPはデフォルトでプライマリキーのカラム名はidを指定しているはずなので、これをnoに変更したい。これは実に簡単だ。 “CakePHPのModelで、既定のプライマリキーのデフォルトカラム名「id」を別のカラム名に変更したい” の続きを読む