【发布时间】:2017-02-17 21:36:46
【问题描述】:
使用 CodeIgniter 或任何 MVC 框架,前提是 Model 是数据库包装器,并且 Controller 不得包含有关数据库或与数据库的任何连接的任何信息。 p>
现在,如果一个人使用方法创建一个通用模型类,请说“DB_Model”
add($table, $fields)
要使用此方法,该人必须从 Controller 中调用它
$this->DB_Model->add('my_table_name', $fields)
现在的问题是,Model-View-Controller 框架的定义是不是错了?我的意思是,Controller 现在获得了有关数据库的信息。
谢谢
编辑:我不是在质疑 CI,而只是在质疑某些人在应用程序和编码上花费更少时间的上述做法。
【问题讨论】:
-
但不是模型在做实际的数据库工作吗?
-
$db_model_obj = new DB_Model();
-
$db_model_obj->someFunction();
-
$this->render('some_view',array('some_key'=>$db_model_obj));
-
您不要在模型层中创建需要表名的方法。如果您正在接受订单,则方法应为
create_order($some_post_fields_array)。控制器调用$result = $this->BI_model->create_order($post_data);。您甚至不必在任何地方使用字母 DB。
标签: php codeigniter model-view-controller