1

モデル クラスを完全に置き換えて変更しています。また、さまざまなクラスのほとんどのコンポーネントを分割し、必要なときにロードできるようにしたいと考えていました。この特定のクラスは、コンストラクターにロードする必要があります。私のクラスの単純なモデルは次のとおりです。

Model.php

class CI_Model {
     function __construct(){
         load_class('Model_validations', 'core');
     }
 }

Model_validations.php

class CI_Model_validations extends CI_Model {
     private $validations = array();
     public function validates($field){
     }
 }

次のプログラムから得られるものは次のとおりです。

致命的なエラー: 行 233 の /xampp/htdocs/cms/system/core/Controller.php で 134217728 バイトの許容メモリ サイズが使い果たされました (261904 バイトを割り当てようとしました)

さらに、削除しようとしましたがextends CI_Model、問題なく動作します。また、メソッドはロード直後に呼び出されると言えますが、CI_Model_validations::validate()メソッドは空であり、それがどのように問題を引き起こすかわかりません。

何か案は?前もって感謝します。

4

1 に答える 1

1

これは、CI_ModelがCI_Model_validationsをロードしようとし、CI_Modelが継承するときにCI_Modelを再度ロードしようとするためです。そして、CI_ModelはCI_Model_validationsを再度ロードしようとします...

更新:上記の私の仮定は、この答えから間違っているようです。load_classはシングルトンローダーであると書かれています。

于 2012-05-16T06:32:57.320 に答える