在CodeIgniter 3.1.5(最新版)中跟踪在控制器或模型中发布和处理数据的有效方法有点困惑
方法:1在模型中
public function insert_entry()
{
$this->title = $_POST['title'];
$this->content = $_POST['content'];
$this->date = time();
$this->db->insert('entries', $this);
}
方法:2在控制器
中public function insert_entry()
{
$title = $this->input->post("title");
$content = $this->input->post("content");
$date = $this->input->post("date");
$data = array(
'title' => $title,
'content' => $content,
'date' => $date
);
$this->model->insert($data);
}
然后在模型中处理数据和查询。
如果我们要创建一个大型Web应用程序,这是一种有效的方法。
答案 0 :(得分:2)
实际上,没有最好的办法。只有良好实践。无论哪种方式,您都可以存档。但模型和控制器有不同的工作。
模型仅与数据库互连。控制器是自己加载它,初始化,传递它和所有。
我个人建议你,如果它是数据库相关的东西使用模型。除了在Controller中执行它之外(如文件上载,验证,重定向,加载URL)。如果我们以道德方式编写代码,那么其他开发人员应该理解。所以,如果它很乱,他/她就无法理解其中的任何一个。因此,只需简单地使美好而清晰。
阅读这些
答案 1 :(得分:1)
在没有充分理由的情况下,你不应该像这样直接在CodeIgniter中使用$_POST
。这样做意味着框架不会自动清理数据。因此,第二种方法是可行的方法。
答案 2 :(得分:1)
以下是关于你的问题的一些建议。
首先。用户Input Class用于发布和获取。
基础控制器对大型项目也非常有帮助。 base-controller-and-apply-it-to-all-existing-controller
Codeigniter有一个很好的验证库Form Validation
主要是我建议你请阅读Codeigniter User Guide。太棒了。我也从那开始。
我正在添加一些有用的链接以便更好地理解。
好的评论后我会建议: 模型意味着要做所有与数据库相关的功能。这不是必须的,但我们始终遵循最佳实践,因此所有与DB相关的功能都将放在模型中。
发布的数据表单视图将首先出现在控制器中。 (参见输入建议)然后将该数据发送到模型并根据需要执行进一步的处理。