gpt4 book ai didi

php - Symfony2 和 Doctrine - 未定义索引

转载 作者:可可西里 更新时间:2023-11-01 13:00:07 27 4
gpt4 key购买 nike

我有一个 Symfony 2.4.x 项目。

在那里,我有两个映射在一起的实体: session 和论文。

每个 session 都有论文,对于一个特定的 session ,我想获得论文的数量。

为此,在我的 session 实体中,我有:

/**
* @ORM\OneToMany(targetEntity="Paper", mappedBy="conference")
*/
protected $papers;

在我的实体Paper中:

/**
* @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:这是我在尝试解决问题时发现的一些消息。那里涉及另一个类:提交。

这是代码:http://pastebin.com/bkdRtjdq

在 Submission 类中,我的主键是 hash_key 而不是 id。

最佳答案

当我尝试在 ManyToMany 关系中使用 ObjectManager 获取实体时,我遇到了同样的错误:

$repository->findBy(
array('members' = > $user)
);

我的解决方法是使用 DQL 在 Repository 中编写 find 方法:

public function findByMember(User $member)
{
$qb = $this->createQueryBuilder('g');

$qb->innerJoin('g.members', 'wg')
->where($qb->expr()->eq('wg', ':member'))
->setParameter('member', $member);

return $qb->getQuery()->getResult();
}

也许它对某人有用。

关于php - Symfony2 和 Doctrine - 未定义索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21094047/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com