我有一个Symfony 2.4.x项目。
在那里,我有两个映射在一起的实体:会议和论文。
每个会议都有论文和特定会议,我想获得论文数量。
为此,在我的会议实体中,我有:
/**
* @ORM\OneToMany(targetEntity="Paper", mappedBy="conference")
*/
protected $papers;
在我的实体论文中:
/**
* @ORM\ManyToOne(targetEntity="Conference", inversedBy="papers")
* @ORM\JoinColumn(name="conference_id", referencedColumnName="id")
*/
protected $conference;
当我在Symfony2.0上有这个项目时,一切都运行良好,但现在我在Symfony 2.4.x中迁移它,我在尝试时遇到以下错误:
count($conf->getPapers()); // In the controller
{{ conf.papers | length }} // In the twig template
错误:
ContextErrorException: Notice: Undefined index: hash_key in /var/www/git/conference2.0-v2.4/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php line 121
编辑:以下是pastebin中两个实体的完整类:
编辑2:这是我通过尝试解决问题而找到的一些消息。另有一个classe参与其中:提交。
以下是代码:http://pastebin.com/bkdRtjdq
在Submission类中,我的主键是hash_key而不是id。
答案 0 :(得分:1)
当我尝试在[{1}}真实关系中获得ObjectManager
的实体时,我遇到了同样的错误:
ManyToMany
我的解决方法是使用DQL在$repository->findBy(
array('members' = > $user)
);
中编写find
方法:
Repository
也许这对某人有用。
答案 1 :(得分:0)
是否存在论文为0的情况? conf.papers变量可能为null,您需要在计数之前先检查它是否为空。 {%if conf.papers为空%} ... {%endif%}
答案 2 :(得分:0)
我猜它可能是由多个案例造成的:纸张 s
试试这个:
/**
* @ORM\OneToMany(targetEntity="Paper", mappedBy="conference")
*/
protected $paper;