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

时间:2012-03-15 18:19:24

标签: model-view-controller codeigniter orm doctrine

我正在将Codeigniter和Doctrine一起用于项目。我已经用这两种工具设置了所有东西。但我不确定我应该在哪里获得这些代码:

$query = $em->createQuery('SELECT u FROM sessions u');
$sessions = $query->getResult(); // array of User objects

我应该将它放在控制器中还是模型/实体中?首先想到的是,我认为我应该将这种逻辑放在Sessions模型中,但它需要实体管理器$ em,我原本认为它应该在控制器中。

谢谢,这让我在过去的半小时里疯狂了。

1 个答案:

答案 0 :(得分:0)

许多人喜欢创建名为DAO或数据访问对象的对象来存储此类信息。

DAO包含可以调用的实体管理器和方法,并返回所需的数据。例如,此函数将驻留在DAO中:

function findEmployeeById($emp_id)

它将包含用于从数据库中检索员工的查询。在您的控制器中,您只需使用DAO而不是拥有实体管理器并在该级别处理它。

但这实际上取决于偏好和项目的大小。