[CakePHP1.2]モデルのテーブル名を動的に切り替える

モデルで使用しているテーブル名を動的に切り替えるメソッド
$this->Model->setSource(table_name);

マージテーブルなどで年代別に複数のテーブルに分割している場合などで、特定のテーブルのデータを取得したいときに使えそうです。

$this->Model->useTable の中身も自動的に切り替わるので、これで元に戻そうとしてこれをセットしても戻りませんので注意。
また、コントローラーでModel::useTableを書き換えても駄目です。

モデル名、テーブル名が命名規約に添っていれば下記で元に戻ると思います。
$this->Model->setSource(inflector::tableize($this->Model->name));

タイトルとURLをコピーしました