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