我确定以前有人问过这个问题,但我不确定我正在寻找的术语,所以请多多包涵!
我有一个看起来像这样的表结构:
[Branch] [Ville]
- ID - ID
- Ville_ID - Region_ID
[Region]
- ID
- Province_ID
[Province]
- ID
- Country_ID
[Country]
- ID
分支实体如下所示:
/**
* @ORM\Entity
* @ORM\Table()
*/
class Succursale
{
/**
* @ORM\Id
* @ORM\GeneratedValue()
* @ORM\Column(name="ID", type="integer")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="Hero\LieuBundle\Entity\Ville")
* @ORM\JoinColumn(name="Ville_ID", referencedColumnName="ID", nullable=false)
*/
protected $ville;
}
城市、地区、省和国家实体基本相同:
/**
* @ORM\Entity
* @ORM\Table()
*/
class Ville
{
/**
* @ORM\Column(name="ID", type="integer")
* @ORM\Id
* @ORM\GeneratedValue()
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="Hero\LieuBundle\Entity\Region")
* @ORM\JoinColumn(name="Region_ID", referencedColumnName="ID", nullable=false)
*/
protected $region;
}
代码很简单(Symfony2):
$succursales = $entreprise->getSuccursales();
在树枝模板中,我有:
<ul>
{% for item in succursales %}
<li>{{ item.adresse }}, {{ item.ville.nom }}</li>
{% endfor %}
</ul>
这一切都很好。当我获取一个分支时,我可以轻松地获取城市,但显然能够通过单个查询获取地区、省和国家会很好。看到 Doctrine2 有多棒,我相信这是可能的,但如果有人能指出我正确的方向,我将不胜感激!