我第一次使用自定义MVC 工作,并希望显示从DB获取的行数。 我使用以下代码创建了一个模型( controles_model.php ):
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; ?>
但它不起作用。 这是它给我的错误信息:
通知:未定义属性:在 D:\ xampp \ htdocs \ exam_planning \ assets \ template \ controles.php 中查看:: $ controle_counter 13
答案 0 :(得分: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 : ''; ?>
还检查模型是否确实存在,以防文件不存在。