帮助Codeigniter和MVC模型模式

Boo*_*ski 2 model-view-controller model codeigniter

我正在创建一个类似于wordpress博客的网站,首页将显示一个帖子循环:post_summary,author info和tags.

我有四张桌子:

posts | users | tags | tag relationships
Run Code Online (Sandbox Code Playgroud)

显示我需要在SELECT语句中执行多个JOIN的所有结果

但是,为了保持MVC模式,每个表(或对象?)应该有一个模型.所以我的问题是:如果我正在做一个SELECT all,我将如何做到这一点并仍然保持MVC模式?

要获得帖子的所有必需信息,我需要author_id从users表中获取我的信息并且我需要post_id来获取标签(等等).如果我的所有查询都在不同的模型中,那么执行查询的最佳方法是什么?

我是否制作了一个可以完成所有JOINS并只使用它的模型?我应该从视图中加载模型吗?或者我应该在Controller中进行其他查询工作?

Joh*_*ops 5

我认为你对模特的目的有误解.模型用于处理数据库中的数据,并且不限于每个模型1个表.如果您正在创建博客,那么您真的只需要一个模型.请查看codeigniter网站上的教程,http: //codeigniter.com/tutorials/watch/blog/ ,然后重新阅读模型的用户指南,http://codeigniter.com/user_guide/general/models.html.您可能会将MVC与ORM混淆


Fer*_*Fer 5

不要为连接建立模型.正如@Johnny已经回答的那样,模型和表格不需要具有一对一的关系.在这种情况下,您正在显示博客条目,因此您可以使用名为"Blog"的模型,其方法为"GetList()".该查询是否涉及多个表是无关紧要的.

从概念上考虑它.您正在显示博客条目,并且每个博客条目都有与之关联的其他对象(例如用户ID).尝试思考域驱动,而不是表驱动.