这是在codeigniter 3.1.5中发布和处理数据的最佳方式

时间:2017-07-29 07:48:54

标签: php codeigniter codeigniter-3

在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应用程序,这是一种有效的方法。

3 个答案:

答案 0 :(得分:2)

实际上,没有最好的办法。只有良好实践。无论哪种方式,您都可以存档。但模型和控制器有不同的工作。

模型仅与数据库互连。控制器是自己加载它,初始化,传递它和所有。

我个人建议你,如果它是数据库相关的东西使用模型。除了在Controller中执行它之外(如文件上载,验证,重定向,加载URL)。如果我们以道德方式编写代码,那么其他开发人员应该理解。所以,如果它很乱,他/她就无法理解其中的任何一个。因此,只需简单地使美好而清晰

阅读这些

  1. Model–view–controller

答案 1 :(得分:1)

在没有充分理由的情况下,你不应该像这样直接在CodeIgniter中使用$_POST。这样做意味着框架不会自动清理数据。因此,第二种方法是可行的方法。

答案 2 :(得分:1)

以下是关于你的问题的一些建议。

首先。用户Input Class用于发布和获取。

基础控制器对大型项目也非常有帮助。 base-controller-and-apply-it-to-all-existing-controller

Codeigniter有一个很好的验证库Form Validation

主要是我建议你请阅读Codeigniter User Guide。太棒了。我也从那开始。

我正在添加一些有用的链接以便更好地理解。

  1. 以下是best practices
  2. 的CodeIgniter论坛的帮助程序链接
  3. CodeIgniter文档
  4. 好的评论后我会建议: 模型意味着要做所有与数据库相关的功能。这不是必须的,但我们始终遵循最佳实践,因此所有与DB相关的功能都将放在模型中。

    发布的数据表单视图将首先出现在控制器中。 (参见输入建议)然后将该数据发送到模型并根据需要执行进一步的处理。