2015-05-08 3 views
0

Im Работает впервые с пользовательским MVC и хочет отобразить количество строк, извлеченных из БД. Я создал модель (controles_model.php), используя этот код:Пользовательский MVC: выберите количество с db и количество отображаемых строк.

class Controles_Model extends Model{ 

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

    function controle_counter(){ 
     $query = $this->db->prepare("SELECT COUNT(*) FROM contrôle"); 
     $query->execute(); 
     $count = $query->rowCount(); 
     return $count; 
    } 
} 

Чтобы загрузить модель, я создал этот класс, чтобы загрузить модель динамически.

class Controller{ 

    function __construct(){  
     $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'; 
      $this->model = new $modelName(); 
     } 
    } 
} 

Я попытался отобразить результат таким образом:

<?php $this->controle_counter; ?> 

Но это не работает. здесь сообщение об ошибке дает мне:


Примечание: Не определено свойство: View :: $ controle_counter в D: \ XAMPP \ HTDOCS \ exam_planning \ активы \ шаблон \ controles.php на линии

ответ

0

в контроллере вы должны передать свою модель к виду, как это:

class Controller{ 

function __construct(){  
    $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'; 
     $this->model = new $modelName(); 
     $this->view->model = $this->model; // <--- add this 
    } 
} 
} 

затем на ваш взгляд:

<?php echo (!empty $model) ? $model->controle_counter : ''; ?> 

также проверяет, является ли модель на самом деле есть, в случае, если файл не существует.

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