SSブログ
Lancers.jp

ちいたん その2 〜 addAssociationModel 〜 [ちいたん]

先日の日記でも書いたように、ちいたんでアソシエーションが行えるのは、とても魅力的でちいたんを使う気になった最大の理由でもある。
addAssociationModelの作者の方には、感謝している。

とはいえ、自分は気が小さいので、ちいたんを使いつつも何かあったらいつでもCakePHPに移行できるように、命名規則はCake式で使っている。
だから、ちいたんでは モデルのファイル名 = SQLのテーブル名 がデフォルトだけど、自分のはテーブル名は複数形にしてある。
class CUser extends CModel{
var $table = "users";
}


が、なんでか addAssociationModel では、下記のように強制的にテーブル名を決めてしまっている。
function createModel($name) {
$model = new $name();
$model->db = $this->db;
$model->table = strtolower( substr( $name, 1 ) );
$model->recursive = $this->recursive - 1;
return $model;
}


これだと、CUser モデルは必ず user というテーブルを使わなきゃならないんで、下記のように変更した。
function createModel($name) {
$model = new $name();
$model->db = $this->db;
//もしテーブル名が設定されていなかったら
if(!isset($model->table)){
$model->table = strtolower( substr( $name, 1 ) );
}
$model->recursive = $this->recursive - 1;
return $model;
}


これにて、希望通りのテーブルを参照してくれるようになりましたとさ。

#今日はいつもコードの色を付けさせてもらってる、http://phpspot.net/が落ちていたので、色無し。


nice!(1)  コメント(0)  トラックバック(0) 

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。