我仍在学习MVC方法,我有一个关于正确用法的问题。
如何转换下面的函数以便我可以重复使用它:
旧情况(每次调用此函数时,我都可以指定不同的表名(:
foreach ($client_data->fetch_all("gender") as $aRow):
点火器的新情况:
函数视图:
<?php foreach($fetch_all->result() as $o) : ?>
功能控制器:
public function load_client_data() {
$client_id = $_POST['id'];
$client_data = $this->user_model->get_client_data($client_id);
$fetch_all = $this->user_model->fetch_all();
$this->template->loadAjax("clients/client_data.php", array(
"client_data" => $client_data,
"fetch_all" => $fetch_all)
);
函数型号:
public function fetch_all() {
return $this->db->get();
}
新情况下的代码工作正常,但是我如何传递表名,以便我可以像旧情况一样重用fetch_all函数。
我有一个包含 20 个选择选项的表单,现在我必须为每个选择选项创建 20 个不同的函数来检索数据,而不是仅使用另一个表名调用一个函数。我尝试了不同的选择,但不是我想要的结果。我该如何处理?
您需要
application/core
文件夹中创建一个base_model。- 在那个
base_model
,你需要定义所有泛型函数,如fetch_all、get_one、get_based_on_id等
。 - 在每个模型中,您需要 2 两件事,从 base_model 继承并设置一个名为
tablename
的参数,或者其他适合您的参数,在其中设置要为其定义模型的确切表名 - 现在在控制器中,您将加载模型并调用base_model的函数,例如您加载
User
模型,您将像$this->User->fetch_all()
- Al 认为
fetch_all
在 base_model 中定义,它会起作用
如果您需要更多信息,请告诉我。