学说:加入一对一的关系

时间:2010-12-16 11:13:38

标签: orm symfony1 doctrine entity-relationship

假设我们有两个模型:PostViewsCount。关系类型是1:1。

现在我想用他们的观点统计数据检索最近5篇帖子:

$posts = PostTable::getInstance()->createQuery('p')
    ->leftJoin('p.ViewsCount') // relation name is "ViewsCount"
    ->orderBy('p.created_at DESC')
    ->limit(5)
    ->execute();

但是,没有运气。它抛出一个错误。如果我删除加入 - 一切都好。

所以,我的问题是 - 如何自动加入/检索Doctrine中的一对一关系,以避免大量额外的查询?

2 个答案:

答案 0 :(得分:1)

语法错误。您还需要告诉您要检索ViewCount字段的原则:

$posts = PostTable::getInstance()->createQuery('p')
  ->select('p.*, vc.*')
  ->leftJoin('p.ViewsCount vc')
  ->orderBy('p.created_at DESC')
  ->limit(5)
  ->execute();

答案 1 :(得分:0)

似乎你应该正确定义关系。 对于每个模型,使用类型键定义关系(类型:一个)。