假设我们有两个模型:Post
和ViewsCount
。关系类型是1:1。
现在我想用他们的观点统计数据检索最近5篇帖子:
$posts = PostTable::getInstance()->createQuery('p')
->leftJoin('p.ViewsCount') // relation name is "ViewsCount"
->orderBy('p.created_at DESC')
->limit(5)
->execute();
但是,没有运气。它抛出一个错误。如果我删除加入 - 一切都好。
所以,我的问题是 - 如何自动加入/检索Doctrine中的一对一关系,以避免大量额外的查询?
答案 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)
似乎你应该正确定义关系。 对于每个模型,使用类型键定义关系(类型:一个)。