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