php - symfony 学说验证实体关系错误
问题描述
我有两个具有一对多双向关系的实体用户和设备。
问题是当我运行这个命令时
php bin/console doctrine:schema:validate
我明白了
* The association App\Entity\User#devices refers to the owning side field App\Entity\Device#user which is not defined as the association, but as the field.
* The association App\Entity\User#devices refers to the owning side field App\Entity\Device#user which does not exist.
用户实体
/**
* @var int
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="Device", mappedBy="user")
*/
private $devices;
设备实体
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="integer",name="user_id")
* @ORM\ManyToOne(targetEntity="User", inversedBy="devices")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true)
*/
private $user;
解决方案
association not as a field
是的,您必须在数据库表中定义用户。
您的设备实体应如下所示:
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="devices")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true)
*/
private $user;
名为的字段user
不应该在您的表中,它会自动生成一个名为 的字段user_id
。您不需要手动添加它。
有关更多信息,请参阅Symfony 学说关联。
推荐阅读
- python - 如何在 python 中正确制作带有输入和输出的 TkInter GUI?
- php - 使用 Laravel 为一对多类别结构创建数据记录
- php - PHP echo 中的引号有问题
- c# - 执行异步/等待时如何确保线程更改?
- php - php function_exists 然后不复存在
- python-3.x - 使用 Networkx 将特定 Pajek (NET) 文件读取到 Jupyter 时出现解析错误
- c# - 为什么我的 foreach 循环只处理其他循环?
- machine-learning - Librosa 帮助读取音频文件,但在我的情况下,当我输入文件名时,它显示找不到运行时错误路径
- c# - 如何添加一个搜索所有 ToolStripMenuItem 并仅显示匹配的文本框?
- c# - Xamarin.Forms iOS CursorPosition 没有被兑现