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的主要内容,如果未能解决你的问题,请参考以下文章