我正在尝试在activite.html树枝页面中显示“CategorieActivite”。
我有2个实体。第一个是Activite。第二个是CategorieActivite。
我在Activite中添加了注释。 我已经在ActiviteRepository中加入了我的查询。 在我的数据库(外键)中没问题。
但我收到此错误: 对象“AssoFranceRussie \ MainBundle \ Entity \ Activite”的方法“CategorieActivite”不存在于(在我的枝条页面中)
我是否必须做其他事情才能从其他实体获取某些实体数据? 谢谢 EB
代码:
class Activite
{
// $categorieActiviteId lié à l'entité CategorieActivite
// ManyToOne
/**
* @ORM\ManyToOne(targetEntity="AssoFranceRussie\MainBundle\Entity\CategorieActivite")
* @ORM\JoinColumn(name="categorie_activite_id", referencedColumnName="id")
*/
private $categorieActiviteId;
...
}
ActiviteRepository:
public function getAllActivites()
{
$query = $this->getEntityManager()->createQuery(
'SELECT a,c,n
FROM AssoFranceRussieMainBundle:Activite a
JOIN a.categorieActiviteId c
JOIN a.niveauActiviteId n
ORDER BY a.nom ASC '
);
return $query->getResult();
}
在twig html中:
<p><strong>{{activite.CategorieActivite.libelle}}</strong></p>
答案 0 :(得分:1)
您应该为$ categorieActiviteId属性创建getter。 所以在Activite课程中你应该有
public function getCategorieActivite() {
return $this->categorieActiviteId;
}
在树枝上你应该:
<p><strong>{{activite.getCategorieActivite.libelle}}</strong></p>
不要忘记libelle必须是公共方法或属性
答案 1 :(得分:0)
感谢您的帮助。它现在有效。 实际上我已经在Activite类中使用了带注释的getter。所以,我应该用twig {{activite.categorieActiviteId.libelle}}而不是{{activite.categorieActivite.libelle}}来写。访问数据工作的两种方法。
Activite类中的getter:
/**
* Get categorieActiviteId
*
* @return \AssoFranceRussie\MainBundle\Entity\CategorieActivite
*/
public function getCategorieActiviteId()
{
return $this->categorieActiviteId;
}