Php 对关系使用整数

Php 对关系使用整数,php,symfony,doctrine,mariadb,symfony4,Php,Symfony,Doctrine,Mariadb,Symfony4,我正在实现一个RESTAPI,我想实现一种快速而简单的方法来创建和持久化实体 因此,我创建了一个这样的实体,$plain是一个基本的关联数组: 公共函数构造($plain=null) { 如果($plain!=null){ foreach($k=>v){ 如果(财产_存在($this,$k)) $this->{$k}=$v; 其他的 抛出新异常(“属性$k不存在于“.self::class”中); } } } /** *@ORM\manytone(targetEntity=“Category”,

我正在实现一个RESTAPI,我想实现一种快速而简单的方法来创建和持久化实体

因此,我创建了一个这样的实体,
$plain
是一个基本的关联数组:

公共函数构造($plain=null) { 如果($plain!=null){ foreach($k=>v){ 如果(财产_存在($this,$k)) $this->{$k}=$v; 其他的 抛出新异常(“属性$k不存在于“.self::class”中); } } } /** *@ORM\manytone(targetEntity=“Category”,inversedBy=“children”) */ 私人$parent; 我的前端输入看起来像这样,然后从上面解码到
$plain
数组:

{
    "name": "FooBar",
    "parent": 1
}
刷新时,我遇到了一个完全可以理解的条令错误,告诉我
$parent
是一个整数,而不是预期的实体

我想在这里提到,后端永远不会获取“父级”,因为我正在创建一个新实体,我只想在数据库的
parent\u id
列中写入
1

总而言之,我的目标是让Dority在数据库列中写入id,而不检查上下文


有什么想法吗?谢谢

当您指定“不检查上下文”时,我认为这将是非常尴尬和棘手的。ORM的全部目的是将您与数据库问题(如编写外来ID来表示关系)分离。我不确定它是否会被检查,但请看一下
getReference
——然而,由于实体本身不应该在内部包含$em,这将由一些智能存储库功能完成,我会说。。。