CodeIgniter 中控制器或模型中的 CRUD

Posted

技术标签:

【中文标题】CodeIgniter 中控制器或模型中的 CRUD【英文标题】:CRUD in controller or model in CodeIgniter 【发布时间】:2015-04-24 04:07:01 【问题描述】:

我是开发新手,现在我对某些事情很困惑...当我进行选择、更新、删除、插入时,这段代码应该去哪里?在控制器或模型中?

我一直在模型中完成这些查询,但我看到一些框架,如 codeigniter,有一个叫做 Active Records 的东西,实际上是像 get()、where() 这样的函数,select(), join() 等...这些函数在控制器中?

我做了研究,但我仍然很困惑。救命!

【问题讨论】:

任何与数据库有关的东西都在模型中。 Codeigniter's doc - Details about models 显然,您的研究未能包含 CodeIgniter 文档。 These basics are very clearly explained in the Introduction section。 IMO,您应该从头到尾阅读整个 CodeIgniter 手册,包括执行tutorial project。它易于阅读和遵循,只需几个小时。 @AdrienXL,虽然我非常同意你的看法,the CI documentation clearly states that models are "not required"。因此,我投票结束这个问题“主要基于意见”。 @Sparky 好的,因为已经非常清楚地解释了基础知识,您是否碰巧知道 Active Record 函数应该在哪里?控制器还是模型? 你还没有read the link I gave you?它是这样说的,“通常你的模型类将包含帮助你在数据库中检索、插入和更新信息的函数。” 它还这样说,“不需要模型” ~ 所以把它们放在你想要的任何地方。 【参考方案1】:

模型将包含帮助您在数据库中检索、插入和更新信息的函数。

IE:

function insert_entry($data)

    ...
    database operations

$data 来自 $_POST 或您从中获取数据的任何地方

控制器充当模型和视图之间的中介,在这里您可以调用模型来选择、更新、删除、插入

public function insert_entry() 
    $this->load->model('some_model');

    $data['foo'] = $_POST['foo'];
    $data['bar'] = $_POST['bar'];

    $this->some_model->insert_entry($data);

    $this->load->view('some_view'); // Tell the user the data was inserted

请记住,这是一个示例,您应该先进行一些验证

【讨论】:

以上是关于CodeIgniter 中控制器或模型中的 CRUD的主要内容,如果未能解决你的问题,请参考以下文章

yii2中控制器中怎么调用模型

从 MVC 中控制器中的不同方法向视图发送消息

如何将结果从模型传递到 CodeIgniter 中的控制器?

Codeigniter - 从模型访问控制器数据

将数组从控制器传递到 codeigniter 中的模型

模型或控制器中的学说查询?