[Codeigniter-users] モデルクラス内での他のモデルクラスの利用について

Back to archive index

Yuta Sakurai sakur****@gmail*****
2008年 6月 13日 (金) 03:40:14 JST


皆様、初めまして || こんにちは。
名市大で学生をしている、櫻井と申します。
このMLには初めての投稿です。どうぞよろしくお願いします。

早速で申し訳ないのですが、質問させてください。

現在、CodeIgniterでのモデル部分実装で詰まっています。
ある一つのモデルクラスから、別のモデルクラスをロードして使いたいのですが、
ロードしてもインスタンス化されず、利用することができません。

以下にコード例を示します。
=====ここから
<?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 メーリングリストの案内
Back to archive index