gpt4 book ai didi

doctrine-orm - 一对多/多对一模式异常

转载 作者:行者123 更新时间:2023-12-03 09:28:56 25 4
gpt4 key购买 nike

我尝试使用 Doctrine2 为我的 Symfony2 应用程序构建多对一关系。我收到此错误,但不知道为什么:

app/console doctrine:schema:create
PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0
ATTENTION: This operation should not be executed in an production enviroment.


[Doctrine\DBAL\Schema\SchemaException]
There is no column with name 'activityGroup' on table 'activity'.

这是两个类: http://pastebin.com/Ev7Rwgxr

我认为 Activity 类实际上有 activityGroup ......那么这个错误试图说明什么?

谢谢!

最佳答案

我知道了...

uniqueconstraints 期望真正的数据库字段名称是 activityGroup_id而不仅仅是 activityGroup .

可以通过提供 JoinColumn 来确定在数据库中调用的字段。

所以,一个聪明的解决方案是:

    /**
* @ORM\Entity
* @ORM\Table(name="activity",
* uniqueConstraints={
* @ORM\UniqueConstraint(name="name_idx", columns={"activity_group_id", "name"}),
* @ORM\UniqueConstraint(name="sort_idx", columns={"activity_group_id", "sort_id"})
* }
* )
*/
class Activity
{
// ...

/**
* @ORM\ManyToOne(targetEntity="SeduceMe\SiteBundle\Entity\ActivityGroup", inversedBy="activities")
* @ORM\JoinColumn(name="activity_group_id", referencedColumnName="id")
*/

protected $activityGroup;
//...
}

关于doctrine-orm - 一对多/多对一模式异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6240311/

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