インデックスファイルでは、私は_autoload
を持っていて、libsをロードしてからurlを爆発させて、必要なcontollerとモデルがあればそれを取得します。ビューでは、私は(モデル__constructを見ることができる)ので、モデルがロードされているが、私は$this->model->test();
を使用しようとする場合、私は非オブジェクトにメンバ関数のテスト()へモデル内でメソッドを実行する方法| MVC
コールを取得
http://site.com/について
$this->request = about;
$controller = new $this->request;
$controller->loadModel($this->request);
Everething作業OK
* ここ
class Conroller {
function __construct() {
// echo 'Main controller<br />';
$this->view = new View();
}
public function loadModel($name) {
$path = 'models/'.$name.'_model.php';
if (file_exists($path)) {
require 'models/'.$name.'_model.php';
$modelName = $name . '_model';
// **here i make the object**
$this->model = new $modelName();
}
}
}
ここ
モデルについて
ここclass about_model{
function __construct() {
echo 'test';
}
public function test() {
$test = 'test one';
}
}
であるメインコントローラ*です
class About extends Conroller {
function __construct(){
parent::__construct();
$this->model->test();
$this->view->render('/about');
}
}
エラーメッセージ全体とともに、使用している最終コードを投稿してください。 – jasonbar
これはブート・ファイルのほとんどすべてで、完全なエラーはAbout Conroller内の非オブジェクト上のメンバ関数test()への呼び出しでした。しかし、私は$コントローラ - > loadModel($ this-> request)を削除します。ブート・ファイルから、およそのモデルでは、$ this-> loadModel( 'about')を追加します。 – Ben