php - mvc - 无法在模型中获取数据库实例
问题描述
我设置了一个基本的 MVC 框架。
问题是我必须将视图中的注册表传递给控制器才能调用在注册表中设置的数据库。这似乎不是正确的方法。
提问如何直接在我的模型中获取数据库实例?
初始化.php:
$registry = new registry;
$registry->db = db::getInstance();
基本控制器:
protected $registry;
function __construct($registry) {
$this->registry = $registry;
}
RegoController 类:
Class regoController Extends baseController {
var $folder = 'rego';
public function index()
{
$this->registry->template->show($this->folder.'/index');
}
public function view(){
$this->registry->template->show($this->folder.'/view');
}
....
我可以访问其中的数据库,regoController
因为它扩展了baseController
.
我的 rego 类(我需要 db 实例的地方):
class rego {
private $registry;
private function __construct($registry) {
$this->registry = $registry;
}
public static function getAllData($registry,$order){
$sql = "SELECT * FROM rego_details ORDER BY ".$order." ASC";
$db = $registry->db;
$stmt = $db->prepare($sql);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $results;
}
如您所见,注册表在函数中作为参数传递。这似乎不对。
我应该延长regoClass
or ...?
解决方案
推荐阅读
- swift - AnyHashable 作为 AnyEquatable 的替代品
- java - 从导入的依赖项自动装配对象
- android - 在哪里放置 CodeLab 的起始代码:“使用 ML Kit for Firebase:检测图像中的对象:Android”?
- python - 为什么我的 Python 函数即使我把 return 也返回 None?
- javascript - this.props 不返回从父组件获取的数据(反应)
- html - 如何排列三个小图像?
- javascript - 我应该/是否必须导出 Javascript ES6 中另一个导出类返回的返回类?
- android-studio - MPAndroidChart LineChart 从最后一个 x 值开始
- reactjs - Phoenix:通过 git 引用 exq_ui 依赖项时出错
- javascript - 将参数作为对象文字发送的更好方法?