开始学习 Codeigniter 并更好地掌握 MVC 后,我开始想知道一些事情。
假设有一个模型控制存储在数据库中的用户。通过在控制中验证的表单完成简单的注册,然后将数据传递到模型以存储在数据库中。现在,引入发布的数据并设置一个数组以传递到要存储的数据库的过程在模型中组装,如下所示:
function add_user() {
$new_user_data = array(
'etunimi' => $this->input->post('etunimi'),
'sukunimi' => $this->input->post('sukunimi'),
'osoite' => $this->input->post('osoite'),
'postinro' => $this->input->post('postinro'),
'toimipaikka' => $this->input->post('toimipaikka'),
'puhelin' => $this->input->post('puhelin'),
'email' => $this->input->post('email'),
'tunnus' => $this->input->post('tunnus'),
'salasana' => $this->input->post('salasana')
);
$insert = $this->db->insert('kayttajat', $new_user_data);
return $insert;
}
我正在考虑的是将数据的组装转移到 Controller 中,从而使模型更加独立和可重用。最终数据将作为方法参数传递:
function add_user ($new_user_data) {
$insert = $this->db->insert('kayttajat', $new_user_data);
return $insert;
}
据我了解,这将在各层之间进行更多区分,因为模型除了检索和传递最终信息之外什么都不做,证明和组装的责任由 Controller 承担,而 View 只是将其全部打印出来并提供 UI。
我想要一些更有经验的意见,了解哪个概念更类似于 MVC 原则并且更有意义。
最佳答案
您可以在 Controller 中进行验证并将数据发送到模型:
Controller :
if ($this->form_validation->run()) {
$this->my_model->add_user($this->input->post());
}
型号:
function add_user($input) {
$this->db->insert('kayttajat', $input);
}
关于model-view-controller - MVC原理与数据控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11687249/