我面临一些问题,我想在多对多关系中做一个查询
我有两个实体:网站和语言
网站是业主方所以我有:
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)
}
在树枝模板中,我显示所有网站。 我想添加一个包含每个网站语言的新专栏,但我不知道我可以做些什么来获得这个...
总之,我需要做些什么来获取网站的所有语言?
编辑:我的操作将数据发送到twig模板:
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 :(得分:0)
您可以非常轻松地访问模板中的$languages
。
你会做这样的事情:
<ul>
{% for element in entity.languages %}
<li>{{ element.name }}</li>
{% endfor %}
</ul>
我建议您阅读 Twig 中的documentation about loops。