symfony doctrine验证实体关系错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了symfony doctrine验证实体关系错误相关的知识,希望对你有一定的参考价值。
我有两个实体用户和设备具有一对多双向关系。
问题是在我运行此命令时
php bin/console doctrine:schema:validate
我明白了
* The association AppEntityUser#devices refers to the owning side field AppEntityDevice#user which is not defined as the association, but as the field.
* The association AppEntityUser#devices refers to the owning side field AppEntityDevice#user which does not exist.
用户实体
/**
* @var int
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORMOneToMany(targetEntity="Device", mappedBy="user")
*/
private $devices;
设备实体
/**
* @ORMId()
* @ORMGeneratedValue()
* @ORMColumn(type="integer")
*/
private $id;
/**
* @ORMColumn(type="integer",name="user_id")
* @ORMManyToOne(targetEntity="User", inversedBy="devices")
* @ORMJoinColumn(name="user_id", referencedColumnName="id", nullable=true)
*/
private $user;
答案
是的,您必须在数据库表中将用户定义为association not as a field
。
您的设备实体应该像:
/**
* @ORMManyToOne(targetEntity="User", inversedBy="devices")
* @ORMJoinColumn(name="user_id", referencedColumnName="id", nullable=true)
*/
private $user;
名为user
的字段不应该在您的表中,它会自动生成一个名为user_id
的字段。您无需手动添加它。
有关更多信息,请参阅Symfony Doctrine associations。
以上是关于symfony doctrine验证实体关系错误的主要内容,如果未能解决你的问题,请参考以下文章
Doctrine symfony使用OneToMany删除实体 - ManyToOne关系
Symfony Doctrine 关系在 PhpUnit 测试中为空