0
我有这个问题用symfony 2:错误坚持一个Symfony2的实体:一个新的实体被发现
“一个新的实体通过中没有配置的关系“的Acme \ AcmeBundle \实体\ MainEntity#人发现为实体级联持久化操作:JOHN DOE CORP。要解决此问题:显式调用此未知实体上的EntityManager#persist()或配置级联将此关联保存在映射中,例如@ManyToOne(..,cascade = {“persist “})。”
MainEntity是一个普通的实体,具有与person实体的ManyToOne关系的“person”字段。 People实体是一个只读实体,但我不知道为什么会创建一个新Person。
当我通过表单更新MainEntity时发生这种情况。形式的定义是:
$builder
->add('code')
->add('type')
->add('person', new PeopleType())
->add('Save', 'submit');
而且PeopleType是:
$builder
->add('name', 'text', array('read_only' => true))
->add('idNumber', 'text', array('read_only' => true))
->add('address', new AddressType());
正如你所看到的,这是不可能改变的人场,所以我不知道这里发生了什么?请提供任何线索?
你在你的实体中有一个关系,你需要在其上添加'cascade = {“persist”} ......你能显示你的实体的代码吗? –
我无法添加cascade = {“persist”},因为People表必须是只读表,因此无法创建新人。无论如何,AFAIK我没有创建任何新的人... – mHouses