Kenji
kenji****@club*****
2008年 6月 13日 (金) 07:00:07 JST
Kenji です。 On Fri, 13 Jun 2008 03:40:14 +0900 Yuta Sakurai <sakur****@gmail*****> wrote: > 皆様、初めまして || こんにちは。 > 名市大で学生をしている、櫻井と申します。 > このMLには初めての投稿です。どうぞよろしくお願いします。 櫻井さん、こんにちは。 > 早速で申し訳ないのですが、質問させてください。 > > 現在、CodeIgniterでのモデル部分実装で詰まっています。 > ある一つのモデルクラスから、別のモデルクラスをロードして使いたいのですが、 > ロードしてもインスタンス化されず、利用することができません。 http://codeigniter.com/forums/viewthread/74671/ が、参考になるかと思います。 基本的には、設計を見直した方がいいと思います。 > 以下にコード例を示します。 > =====ここから > <?php > class Alpha extends Model { > function Alpha() { > parent::Model(); > > $this->load->database(); > } > > function alpha_test() { > $this->load->model('beta', '', true); > > $this->beta->beta_test(); > } > } > ?> > =====ここまで > > なお、modelsディレクトリ以下に、 > alpha.php > beta.php > の二つのモデルクラスファイルを入れています。 > > 別にController内でAlphaモデルをロードし、alpha_test()メソッドを > 呼び出すと、 > $this->beta->beta_test(); > の部分で、Undefined property: Alpha::$betaと言われます。 > XdebugでBetaモデルロード直後のAlphaインスタンス内を見たところ、 > 確かに$this->betaインスタンスは存在していませんでした。 > Betaクラスのロード自体は、エラーもなく問題ありません。 > > Controller内でBetaモデルをロードすると、もちろん問題なくロード後に > 自動でインスタンス化され、利用できます。 > > モデル内で別のモデルをロードするのは、CodeIgniterでは想定していない > ものなのでしょうか? > それとも、他に方法があるのでしょうか? > ご存知の方がいらっしゃったら、お教えいただけますでしょうか。 > (そもそも、そうすべき状況になってしまう僕の設計がまずいのかも) > > それでは、失礼します。 > > // CodeIgniter徹底入門、発売おめでとうございます。 > // PHP初心者の僕でも、環境構築を含めてCodeIgniterが > // すぐに触れるようになる、とても素晴らしい本だと思います。 > // これからもリファレンスとして愛用させていただきます。 > > -- > > 名古屋市立大学大学院 経済学研究科 > 櫻井 雄大 (Y_Sakurai) > mail: sakur****@gmail***** > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users