自定义 MVC:select 从 db 计数并显示行数

Custom MVC: select count from db and display number of rows

我第一次使用 自定义 MVC 并希望显示从数据库中获取的行数。 我使用以下代码创建了一个模型(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 以动态加载模型。

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; ?>

但是没用。 这是它给我的错误消息:


Notice: Undefined property: View::$controle_counter in D:\xampp\htdocs\exam_planning\assets\template\controles.php on line 13

在您的控制器中,您必须像这样将模型传递给视图:

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 : ''; ?> 

还会检查模型是否确实存在,以防文件不存在。