Как запустить метод внутри модели |MVC - PullRequest
0 голосов
/ 13 марта 2012

В индексном файле у меня есть _autoload и загружаю библиотеки, а затем я взрываю URL, чтобы получить требуемый контроллер и модель, если она существует.В представлении я вижу модель __construct (), поэтому модель загружается, но если я пытаюсь использовать $this->model->test();, я получаю

Вызов функции-члена test () для необъектного объекта

http://site.com/about

$this->request = about;
$controller = new $this->request;
$controller->loadModel($this->request); 

Все работает нормально

* Вот главный контроллер *

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();
        }       
    }

}

Вот модель About

class about_model{

    function __construct() {
        echo 'test';
    }

    public function test() {
        $test = 'test one';
    }

}

Вот модель контроллера About

class About extends Conroller {

   function __construct(){
       parent::__construct();
       $this->model->test();
       $this->view->render('/about');
   }

}

1 Ответ

1 голос
/ 13 марта 2012

Вам нужно будет позвонить loadModel на вашем About контроллере, прежде чем обращаться к модели:

class About extends Conroller {

   function __construct(){

     parent::__construct();

     $this->loadModel('about');
     $this->about->test();
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...