動的にモデルで使っているテーブルを変更する方法

CakePHP 1.2.1を使ってます。

モデルのテーブルを簡単に変更する方法です。コントローラで下記のようにすれば変わります

$this->Model->setSource('tablename');


一時的にテーブルを変えたいだけの場合は、

$oldtable = $this->Post->useTable;
$this->Post->setSource('posts2');


//利用テーブルを戻す
$this->Post->setSource($oldtable);

こんな感じでできます。


それ以外の方法としては、モデルをnewで作って、そのときの第2引数にテーブル名を渡します。詳細は下記を参照。
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1802&forum=6