Php 带查询的多对多单向问题

Php 带查询的多对多单向问题,php,symfony,doctrine,Php,Symfony,Doctrine,在多对多关系中,我想进行的查询遇到了一些问题 我有两个实体:站点和语言 现场为业主方,因此我有: class Site { /** * @ORM\ManyToMany(targetEntity="Language", cascade={"persist"}) */ protected $languages; public function __construct() { $this->languages = new ArrayColl

在多对多关系中,我想进行的查询遇到了一些问题

我有两个实体:站点和语言

现场为业主方,因此我有:

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)

}
在细枝模板中,我显示所有站点。 我想添加一个新的列,每个网站的语言,但我不知道我可以做什么要求得到这个

总之,我需要做什么才能获得一个站点的所有语言

编辑:将数据发送到细枝模板的我的操作:

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,
            ));
        }
您可以非常轻松地访问模板中的$languages

您可以这样做:

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

我建议您阅读小树枝。

您可以发布将数据发送到小树枝模板的控制器代码吗?我编辑我的答案,您可以查看:我知道。但是我不知道我能做什么才能得到所有的语言​​对于一个网站,这是我的问题,你不必做任何事情。一旦你在视图中有了你的站点实体,你就可以做我上面展示的事情了。