私はモデルを持っています-
class Model{
public $childModel;
public function getModel($url){
$this->childModel = 'model/'.$url;
include($this->childModel);
new ModelHomeHome();
}
}
これはチャイルドモデルです-
class ModelHomeHome extends Model{
function __construct(){
echo 'This is Home Model.';
}
}
コントローラクラス-
class Controller{
public $model;
function __construct(){
$this->model = new Model();
}
}
これは子コントローラーです-
class ControllerHomeHome extends Controller{
function help(){
$this->model->getModel('home/home.php');
}
}
とページで-
include(controller.php);
include(model.php);
問題は、子モデルクラスが初期化されていないことです。致命的なエラー:非オブジェクトでメンバー関数getModel()を呼び出す...。
親コントローラーの内部に配置するのではなく、子コントローラー$this->model = new Model();
の関数の内部に配置すると、機能します。help()
しかし、親コントローラーのコンストラクター内でモデルを初期化したいと思います。助けてください。