2014-09-16 2 views
0

나는 많은 관계은 다 대다 쿼리

에 많은에서 수행 할 쿼리 몇 가지 문제에 직면하고있어와 단방향 문제 저는 두 기관이 소유자 측 그래서 나는이 :

class Site 
{ 
    /** 
    * @ORM\ManyToMany(targetEntity="Language", cascade={"persist"}) 
    */ 
    protected $languages; 

    public function __construct() 
    { 
     $this->languages = new ArrayCollection(); 
    } 

    public function getLanguages() 
    { 
     return $this->languages; 
    } 

    public function setLanguages($languages) 
    { 
     $this->languages = $languages; 

     return $this; 
    } 
} 

언어 엔티티 :

class Language 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="code", type="string", length=255) 
    */ 
    private $code; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="name", type="string", length=255) 
    */ 
    private $name; 

    ... (getters and setters) 

} 

을 나뭇 가지 테에서 mplate 모든 사이트를 표시합니다. 그리고 각 사이트의 언어로 새 열을 추가하고 싶지만이 요청을 받기 위해 내가 할 수있는 요청이 무엇인지 모르겠습니다 ...

요약하면 다음과 같이 모든 요청을 처리하기 위해 어떤 요청을해야합니까? 사이트의 언어 ??

편집 : 내 행동 데이터를 전송 템플릿을 나뭇 가지합니다 :

public function indexListSiteAction() 
     { 
      $repository = $this->get('doctrine') 
       ->getRepository('BackBundle:Site'); 

      if (!$repository) { 
       throw $this->createNotFoundException('Unable to find Site entity.'); 
      } 

      $sites = $repository->findAll(); 

      return $this->render('BackBundle:Site:site_list.html.twig', array(
       'sites'  => $sites, 
      )); 
     } 
+0

나뭇 가지 템플릿에 데이터를 보내는 컨트롤러 코드를 게시 할 수 있습니까? – Isaac

+0

나는 나의 대답을 편집한다, 너는 볼 수있다 :) – DOZ

답변

0

당신은 매우 쉽게 템플릿에 $languages에 액세스 할 수 있습니다.

당신은 같은 것을 할 것이다 : 나는 나뭇 가지documentation about loops을 읽어 보시기 바랍니다

<ul> 
    {% for element in entity.languages %} 
     <li>{{ element.name }}</li> 
    {% endfor %} 
</ul> 

.

+0

나는 그것을 안다. 그러나 사이트의 모든 언어를 가져 오기 위해 어떤 요청을 할 수 있는지는 알 수 없습니다. 내 질문입니다. – DOZ

+0

아무 것도 할 필요가 없습니다. 뷰에'Site' 엔티티가 있으면 위에서 보여준 것을 할 수 있습니다. – FyodorX

+0

확인. 하지만 내가 말한대로하면 오류가 있습니다. 문자열을 문자열로 변환하는 중 ... – DOZ