0
我是Symfony 2和Doctrine 2的初學者。我有兩個模型Blog
和Comment
。他們通過blog_id
FK在comment
表內相互關聯。嘗試使用Doctrine 2加入兩個簡單表格
我只是想創建一個簡單的方法,需要一個博客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();
}
}
我真的是初學者的學說2.我通常使用查詢生成器,但我不知道如何使一個連接使用。所以在DQL中試過了,也找不出來。
它給了我這個語法錯誤,每當我打電話getBlogWithComments
方法:
[Syntax Error] line 0, col 80: Error: Expected end of string, got 'JOIN'
所有我想知道的是,如何寫JOIN使用查詢生成器和DQL報表?知道文檔不是很有幫助,不幸的是。
好的,這工作。但是當我再次運行它時,我在視圖中出現錯誤「鍵」標題「對於鍵爲」0「的數組在BlogBlogBundle:Blog:show.html.twig中不存在第3行。 –
這就是告訴你'blog'(或者你稱之爲什麼)是一個數組。所以你需要用twig的'for'語句循環每個'blog'文章的'blog'數組。 – hcoat
哦,那也行。但我想知道爲什麼它返回一個數組?我只用其評論來檢索一個博客。正如我所檢查的那樣,該數組只有一個元素'blog [0]',它包含了包含相關注釋的整個博客對象。 –