7
我想在Doctrine中创建一个可选的OneToOne映射。学说可选OneToOne映射
我有一个表,其中包含所有城市和邮政编码(不应更改此表),并且我有一个包含地址和映射城市的表格。但有时我不想在开始时将City添加到我的地址中(可能稍后会发布)。但是当我不向地址添加一个城市时,地址上的坚持给了我一个反射异常,因为没有像'null'这样的对象,它应该是de对象。
我不想每次都在数据库中添加一个空的城市,因为不应该在城市表中添加或删除任何内容。
有什么建议吗?或者我错过了什么?
class Address{
/**
* @OneToOne(targetEntity="City")
* @JoinColumn(name="city_id", referencedColumnName="id")
*/
private $city = '';
可能的解决方案,我认为:
- 创建数据库一座空城对象,并始终分配此到新创建的地址对象(可能会造成很大的开销)
- 创建ManyToMany与一系列城市的关系,所以可以添加零个或多个城市(我可以限制我的地址对象中的大量城市),但然后我需要一个映射表...
什么办法,使这项工作对于多列连接(即@JoinColumns)。 –
不幸的是,它产生了带有空参数的INSERT INTO查询并导致错误:''INSERT INTO message_conversation(title,lastMessage_id)VALUES(?,?)'with params [43]' - 第二个参数(一对一)缺失。 – Athlan
它不适合我。我添加了nullable = true,但没有成功。无论如何要做一对一的关系作为选项? – skonsoft