gpt4 book ai didi

php - Doctrine2 挑战,我有 OneToMany,但没有 ManyToOne,

转载 作者:搜寻专家 更新时间:2023-10-31 21:08:35 24 4
gpt4 key购买 nike

有一个消息系统,其中的消息可以属于咨询,但它不是必须的。尽管所有咨询都有 1 条或多条消息......

我的实体是由 Doctrine 自动生成的,但是 vendor/bin/doctrine-module orm:validate-schema 失败了......

vendor/bin/doctrine-module orm:validate-schema
[Mapping] FAIL - The entity-class 'Legetimen\Entity\Konsultasjon' mapping is invalid:
* The association Legetimen\Entity\Konsultasjon#meldinger refers to the owning side field Legetimen\Entity\Meldinger#konsulatsjon which is not defined as association, but as field.
* The association Legetimen\Entity\Konsultasjon#meldinger refers to the owning side field Legetimen\Entity\Meldinger#konsulatsjon which does not exist.

[Database] FAIL - The database schema is not in sync with the current mapping file.

有关协会的定义:来自消息/Meldinger:

/**
* @var integer
*
* @ORM\Column(name="konsulatsjon", type="integer", precision=0, scale=0, nullable=true, unique=false)
* @ORM\ManyToOne(targetEntity="Konsultasjon", inversedBy="konsultasjonid")
*/
private $konsulatsjon;

来 self 的“家长”咨询 Konsultasjon:

 /**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\OneToMany(targetEntity="Legetimen\Entity\Meldinger", mappedBy="konsulatsjon", cascade={"persist"}, fetch="EAGER")
*/
private $meldinger;

我的 konsultasjon 映射了外部触发器,但不是我的消息(因为许多 konsultasjon 是 NULL)。

此外,我对拼写也无能为力,因为这是一个遗留的且相当困惑的应用程序...

如果您还需要什么,请告诉我,我们将不胜感激。

[编辑]按照评论中的建议删除了 Messages (Meldinger) 中的 @var 和 @collumn,结果如下:

  vendor/bin/doctrine-module orm:validate-schema
[Mapping] FAIL - The entity-class 'Legetimen\Entity\Konsultasjon' mapping is invalid:
* The mappings Legetimen\Entity\Konsultasjon#meldinger and Legetimen\Entity\Meldinger#konsulatsjon are inconsistent with each other.

[Mapping] FAIL - The entity-class 'Legetimen\Entity\Meldinger' mapping is invalid:
* The association Legetimen\Entity\Meldinger#konsulatsjon refers to the inverse side field Legetimen\Entity\Konsultasjon#konsultasjonid which is not defined as association.
* The association Legetimen\Entity\Meldinger#konsulatsjon refers to the inverse side field Legetimen\Entity\Konsultasjon#konsultasjonid which does not exist.
* The referenced column name 'id' has to be a primary key column on the target entity class 'Legetimen\Entity\Konsultasjon'.

[Doctrine\ORM\ORMException]
Column name `id` referenced for relation from Legetimen\Entity\Meldinger towards Legetimen\Entity\Konsultasjon does not exist.

orm:validate-schema

咨询ID:

 /**
* @var integer
*
* @ORM\Column(name="konsultasjonid", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $konsultasjonid;

消息 ID/Meldinger

/**
* @var integer
*
* @ORM\Column(name="meldingerid", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $meldingerid;

最佳答案

当您不使用$id 作为实体的主键时,您必须使用JoinColumn 注解来配置实体之间的关系。 JoinColumn .

如果您想更改关系属性的列名,您需要使用 JoinColumn 而不是 Column 注释。

class Meldinger { 
/**
* @var integer
*
* @ORM\Column(name="meldingerid", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $meldingerid;

/**
* @var integer
*
* @ORM\ManyToOne(targetEntity="Konsultasjon", inversedBy="meldinger")
* @JoinColumn(name="konsulatsjon", referencedColumnName="konsulatsjonid")
*/
private $konsulatsjon;
}

class Konsultasjon {
/**
* @var integer
*
* @ORM\Column(name="konsultasjonid", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $konsultasjonid;

/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\OneToMany(targetEntity="Legetimen\Entity\Meldinger", mappedBy="konsulatsjon", cascade={"persist"}, fetch="EAGER")
* @JoinColumn(name="meldinger", referencedColumnName="meldingerid")
*/
private $meldinger;
}

附言。
我还更正了 @ManyToOneMeldinger 的参数。

关于php - Doctrine2 挑战,我有 OneToMany,但没有 ManyToOne,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27444889/

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