2013-03-02 4 views
-3

Я не могу найти способ вызова метода под названием insertValue();Вызов метода из родительского класса в PHP?

Мой самозагрузки принимает URL и разбивает его на куски так www.URL.com/register/register становится

url[0]=register; 
url[1] = register; 
$controller = new url[0]; 
$controller->loadModel(); 
if islet($url[1]) 
    $controller->{url[1]}; 

class Controller { 
    public $model; 
    function __construct() { 
     $this->view = new View(); //(irrelevant) 
    } 
    public function loadModel($name) { 
     ... 
     $this->model = new $modelName; 
    } 
} 

Класс модели выглядит следующим образом

class Model { 
    public $database; 
    function__construct() { 
     $this->database = new Database(); 
    } 
} 

Так класс базы данных следующим образом

class Database { 
    insertValue(){ 
    ... 
    } 
} 

Теперь у меня есть загрузочный блок, который создает класс регистров, который расширяет контроллер следующим образом:

class Register extends Controller { 
    function__construct(){ 
     parent::__construct(); 
    } 
    public static function register(){ 
     HERE IS WHERE I WANT TO CALL THE INSERT VALUE FUNCTION FROM DATABASE CLASS 
    } 
} 

Бутстраповский также создает свой класс модели, говоря Register->loadModel();, который просто выглядит следующим образом:

class registerModel extends Model { 

    function __construct() { 
     parent::__construct(); 
    } 

Я вообще не могу понять, как вызвать функцию insertValue. Я пробовал $this->model->database->insertValue();, но это не сработало.

P.S. Я замечаю, что когда я вызываю эту функцию, код под ней не вызывается, но сообщение об ошибке не указывается.

+4

Пожалуйста, проверьте это [ссылка] (http://stackoverflow.com/editing-help), чтобы правильно отредактировать коды в сообщении. – hjpotter92

+0

Попробуйте '$ this-> model-> database-> insertValue()', предполагая, что 'loadModel()' уже вызван. – Andy0708

+0

В вашем коде есть синтаксические ошибки. –

ответ

0

Вы пробовали $this->model->database->insertValue()? после вызова loadModel() внутри вашей конструкции контроллера.

+0

Да, это то, что я пытался, и это не шов, чтобы работать. – AlexHeuman

+0

Модель автоматически загружается в моем бутстрапе. $ controller = new $ url [0]; $ controller-> loadModel ($ url [0]); if (isset ($ url [2])) { $ controller -> {$ url [1]} ($ url [2]); } else { @ $ controller -> {$ url [1]}(); } – AlexHeuman

Смежные вопросы