模型或控制器中的学说查询?
Posted
技术标签:
【中文标题】模型或控制器中的学说查询?【英文标题】:doctrine query in model or controller? 【发布时间】:2012-03-15 18:19:23 【问题描述】:我在一个项目中同时使用 Codeigniter 和 Doctrine。我已经使用这两种工具进行了所有设置。但我不确定我应该在哪里有这段代码:
$query = $em->createQuery('SELECT u FROM sessions u');
$sessions = $query->getResult(); // array of User objects
我应该把它放在控制器还是模型/实体中?一开始我觉得我应该把这种逻辑放在 Sessions 模型中,但它需要实体管理器 $em,我认为应该在控制器中。
谢谢,这让我在过去的半个小时里发疯了。
【问题讨论】:
【参考方案1】:很多人喜欢创建称为 DAO 或数据访问对象的对象来存储此类信息。
DAO 包含可以调用并返回所需数据的实体管理器和方法。例如,此函数将驻留在 DAO 中:
function findEmployeeById($emp_id)
它将包含用于从数据库中检索员工的查询。在您的控制器中,您只需使用 DAO 而不是拥有实体管理器并在该级别处理它。
但这真的取决于偏好和你的项目有多大。
【讨论】:
我会将类似的东西 (DAO) 放在 codeigniter 的什么位置?在模型中,还是作为库的一部分? 我对codeigniter不是很熟悉,但我可能会把它和模型放在一起。以上是关于模型或控制器中的学说查询?的主要内容,如果未能解决你的问题,请参考以下文章