没有仔细检查为什么我想要这个(这可能听起来像一个糟糕的方法,但我有充分的理由)我想知道标准框架版3.1中是否有一种方法可以创建一个可能不存在的实体的关系关联...
首先,我确实意识到这决定了架构,这很好 . 因此,如果实体不存在,则它不会创建外键,并且该字段始终为null,或者如果目标实体确实存在,则会创建外键,并且该字段的工作方式与普通关联类似...
其次,这只会将项目更改为项目,并且可能会更改该行作为更新,我意识到可能需要手动架构更新 .
最好没有第三方捆绑依赖...希望标准框架能够做到这一点,
任何人?提前致谢
Edit
我在我的实体中使用带有学说ORM的注释
Furthermore
我这样做的最简单版本是因为某些bundle是可选的项目到项目,而bundle A只有在它存在时才可以使用bundle B中的实体 . 我考虑过使用服务,如果container->然后是container-> get,或者是XML on-invalid =“null”方法,但是这并没有解决属性持久性问题 . 我很高兴将非映射值存储为自定义关系字段,这很好,只是更长,并想知道是否有一种方式Doctrine可以忽略缺少的targetEntity ...
2 回答
我会保留另一个答案,因为它回答了'nullable association target'
live data
的问题 .这是'nullable association target'
meta data
的答案,这是另一回事 .OP要求在元数据中提供
targetEntity
,在他的情况下不能存在,例如是不是有一个不同的捆绑(或任何OP的神秘理由可能) .在这种情况下,我建议在Doctrine的TargetEntityListener上构建,它能够在运行时解析targetEntity,并且
targetEntity
可以设置为抽象类或接口:然后
InvoiceSubjectInterface
将在运行时被配置提供的特定类替换为:因此,这应该是提供
no class
或实现自己的解决方案的可扩展行为 .嗯,也许我误解了你的问题,但这听起来像是一个正常的“可空”的关联给我?
通过注释创建关联:
并使用
作为一个允许可以为空的值的Setter .
你的吸气器可能看起来像:
如果没有
child
,它将返回null .