【问题标题】:Symfony2 error while display entity related ManyToOne显示与ManyToOne相关的实体时出现Symfony2错误
【发布时间】:2014-06-09 20:36:42
【问题描述】:

我正在尝试在 activite.html 树枝页面中显示“CategorieActivite”。

我有 2 个实体。第一个是Activite。第二个是CategorieActivite。

我已经在 Activite 中添加了注释。 我已经准备好加入 ActiviteRepository 的查询。 在我的数据库中没问题(外键)。

但我收到此错误: 对象“AssoFranceRussie\MainBundle\Entity\Activite”的方法“CategorieActivite”不存在(在我的树枝页面中)

我是否必须做其他事情才能从另一个实体获取一些实体数据? 谢谢 乙

代码:

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>

【问题讨论】:

    标签: php symfony doctrine relation many-to-one


    【解决方案1】:

    您应该为 $categorieActiviteId 属性创建 getter。 所以在 Activite 类中你应该有

    public function getCategorieActivite() {
        return $this->categorieActiviteId;
    }
    

    在树枝中你应该有:

    <p><strong>{{activite.getCategorieActivite.libelle}}</strong></p>
    

    别忘了 libelle 必须是公共方法或属性

    【讨论】:

      【解决方案2】:

      感谢您的帮助。现在可以了。 实际上,我已经在 Activite 类中使用了带有注释的 getter。所以,我应该写在树枝 {{activite.categorieActiviteId.libelle}} 而不是 {{activite.categorieActivite.libelle}}。两种访问数据的方法都有效。

      Activite 类中的 getter:

      /**
       * Get categorieActiviteId
       *
       * @return \AssoFranceRussie\MainBundle\Entity\CategorieActivite 
       */
      public function getCategorieActiviteId()
      {
          return $this->categorieActiviteId;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-28
        • 2016-07-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多