Php 在codeigniter 3.1.5中,哪种方式是发布和处理数据的最佳方式

Php 在codeigniter 3.1.5中,哪种方式是发布和处理数据的最佳方式,php,codeigniter,codeigniter-3,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);

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

如果没有充分的理由,您决不能在CodeIgniter中直接使用
$\u POST
。这样做意味着框架不会自动清理数据。因此,第二种方法是要走的路。

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

首先。发布和获取的用户

基本控制器对于大型项目也非常有用

Codeigniter有一个很好的验证库

主要我会建议你的是,请读出来。太棒了。我也从那开始

为了更好地理解,我添加了一些有用的链接

  • 这里是CodeIgniter论坛的帮助链接
  • CodeIgniter文档
  • 好的,在您的评论之后,我将建议: 模型意味着完成所有与数据库相关的功能。这不是必须的,但正如我们所说的,我们总是遵循最佳实践,因此所有与数据库相关的功能都将放在模型中


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

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

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

    我个人建议你是,如果它是一个数据库相关的东西使用模型。而不是在控制器中执行它(如文件上传、验证、重定向、加载URL)。如果我们以合乎道德的方式编写代码,它应该被其他开发人员理解。因此,如果事情一团糟,他/她就无法理解这些。所以只要把它弄清楚就行了。。总是


    读这些


  • 非常感谢您的回复。所以我们应该在控制器本身中写下所有的逻辑和条件,如果有任何数据库命中,我们应该调用模型,对吗?不完全正确。理想情况下,您应该尽可能多地将业务逻辑排除在控制器之外(这一原则有时被称为胖模型、瘦控制器)。但是,获取请求数据在逻辑上属于控制器。抱歉,编写模型而不是控制器。非常感谢您的建议,通常我只在控制器中完成所有处理表单验证、发布数据和处理,但有些开发人员喜欢在模型中发布所有数据,并基于在相同函数中发布的数据执行相同的查询(例如:在模型中插入_数据函数)。这就是为什么我有这种困惑。非常感谢您的回复,我通常只在模型中编写查询代码。我的困惑是在控制器或模型中发布数据。请您从我的帖子中建议一种方法,大多数开发人员可能会遵循。感谢您在controller或model中发布数据的意思what dataSuppose我们有一个注册表,因此在提交表单后,我们将使用post方法(发布)向controller或model发送数据。通过controller接收数据并验证这些数据。(例如:检查空的特殊字符,如果是电子邮件格式…),如果有任何错误,将其抛出查看。如果全部完成并成功,请将其发送给模型。所以模型只是执行更新/插入并返回响应。因此,再次基于响应,像往常一样在控制器中执行其余操作。太棒了!非常感谢。