[CakePHP]コントローラからモデルで使用するテーブル・DBを変更する

12773 回閲覧 このエントリーをはてなブックマークする この記事のブックマークユーザー 永続的リンク2009/03/24 18:55:52 カテゴリ: CakePHP
スポンサード リンク


コントローラからモデルで使用するテーブルを操作したい場合があった。
色々調べてやりかたがわかったのでメモ。

まずは、おさらい

モデルで使われるDBの設定,テーブルはの命名規則通りの場合は特に設定の必要がない。

デフォルトで利用するDBの設定を変更する場合は、モデルに

var $useDbConfig = 'hoge';

と書けばconfig/database.phpで書いた $hoge のDBの設定が使われる。
指定がない場合は、$default 。

テーブルを指定する場合、

var $useTable = 'table_name';

テーブルを使わないモデルの場合は

var $useTable = false;

これらを動的に変更したい場合は、以下のやり方が使える。

コントローラからモデルが使用するテーブルを変更

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

と書けばModelで利用されるテーブルを変更することが出来る。

コントローラからモデルが使用するDBを変更

モデルで使用されるDBを変更することも以下の方法で可能。

$this->Model->setDataSource('hoge');

※config/database.phpにて使用するDBの設定が記述してあること

モデルのインスタンス化のタイミングで設定

モデル

class Sample extends AppModel
{
    var $useDbConfig = false;
    var $useTable = false;
}
App::import('Model','Sample');
$Sample = new Sample(false,'table_name','hoge');

modelクラスのコンストラクト
第1引数:デファルトのID
第2引数:使用するテーブル
第3引数:使用するDB設定



ざっとしたメモなのでおかしなとこがあるかもです・・・。

 →ツイッターのフォローはこちら
スポンサード リンク
         

関連記事

↑ページ上部へ

アクセスカウンター

今日 : 105 昨日 : 14

ブログ内容

主にウェブ関係のことを書いてます。たまにブレイクダンスとか他のことも書いています。

プロフィール

MICK

MICKです。

1983年1月24日生まれ。ウェブの世界にいるのは、偶然のようで必然なのかも。

好きなこと :
 挑戦すること。物事に没頭すること。勉強すること。
嫌いなこと :
 自慢話を聞くこと。人の悪口を言うこと。

運営サイト

      

カテゴリ一覧

サイト広告

オススメの書籍とか

感想

紹介

色々

最近のコメント

最新記事

注目記事

人気記事

最近の人気記事

人気の記事

関連サイト

運営サイト

色々

最近のトラックバック