저는 Symfony 2와 Doctrine 2의 초보자입니다. Blog
포스트와 Comment
의 두 모델이 있습니다. 그들은 안에 blog_id
FK로 서로 관련이 있습니다.Doctrine 2를 사용하여 두 개의 간단한 테이블을 결합하려고 시도했습니다.
블로그 ID를 사용하는 간단한 방법을 만들고 싶습니다. 블로그 및 관련 코멘트를 검색합니다. 관련된 주석을 게으른 로딩에서 다른 쿼리를하는 대신. 정말 나는 보통 쿼리 빌더를 사용 교리 2에서 초보자 해요
<?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();
}
}
,하지만 난 어떻게 그것을 사용하여 가입 만드는 아무 생각이 :
여기에 내가 뭘하려합니다. 그래서 DQL에서 시도해 보았습니다.
내가 getBlogWithComments
메서드를 호출하려고 할 때마다 그것은 저에게이 구문 오류를 제공합니다 :
[Syntax Error] line 0, col 80: Error: Expected end of string, got 'JOIN'
내가 알고 싶은 모든이, 어떻게 는 쿼리 빌더 및 DQL을 사용하여 문을 가입 작성하는 것입니다? 그 문서를 아는 것은 불행히도 도움이되지 않습니다.
좋습니다. 하지만 다시 실행하면 BloggerBlogBundle : Blog : show.html.twig at line 3'에는 키가 "0"인 배열의 Key title이보기에 오류가 발생합니다. –
'블로그'(또는 당신이 그것을 무엇이라고 부르는 지)를 알려주는 것은 배열입니다. 따라서 각 블로그 게시물에 대해'blog' 배열을 반복하기 위해 나뭇 가지의 for 문을 사용해야합니다. – hcoat
아, 그 것도 효과가있었습니다. 하지만 왜 배열 반환합니까 궁금해? 나는 그 의견으로 하나의 블로그 만 검색하고있다. 내가 확인했듯이, 배열에는 관련된 코멘트가있는 전체 블로그 객체를 포함하는 하나의 요소'blog [0]'만 있습니다. –