我是 Symfony 2 和 Doctrine 2 的初学者。我有两个模型一个Blog
帖子和Comment
. blog_id
它们通过表内的 FK相互关联comment
。
我只想创建一个简单的方法,它需要一个博客 ID,检索该博客和相关评论。而不是在延迟加载相关评论时进行另一个查询。
这是我尝试过的:
<?php
namespace Blogger\BlogBundle\Entity\Repository;
use Doctrine\ORM\EntityRepository;
class BlogRepository extends EntityRepository
{
public function getBlogWithComments($id)
{
$query = $this->getEntityManager()->createQuery('
SELECT b, c
FROM BloggerBlogBundle:Blog b
WHERE b.id = :id
JOIN b.id c
WHERE b.id = c.blog');
$query->setParameter("id", $id);
return $query->getResult();
}
}
我真的是 Doctrine 2 的初学者。我通常使用查询生成器,但我不知道如何使用它进行连接。所以在DQL中尝试过,也无法弄清楚。
每当我尝试调用getBlogWithComments
方法时,它都会给我这个语法错误:
[语法错误] 第 0 行,第 80 列:错误:预期的字符串结尾,得到 'JOIN'
我想知道的是,如何使用 Query Builder 和 DQL编写JOIN语句?不幸的是,知道文档并没有太大帮助。