在Sonata Admin中编辑现有表单时遇到问题。嵌入的表单与父表单一一对应。
这两个实体被称为“机票”。并且' ticket_planning',都有几个字段。 A'门票'可以处于不同的状态,例如"新","接受","计划","计划"并且"关闭"。状态存储在其中一个故障单字段中。这些实体都有一个字段' ID'实体' ticket_planning'有一个字段' ticket_id'
当一张机票'是在' plannable'州,我嵌入了'ticket_planning'形式。
如果票证和具有相同ID的ticket_planning都存在,但它们不属于彼此,则会出现问题。它不会给出一个空的嵌入式ticket_planning表单,而是返回与票证表单具有相同ID的ticket_planning表单。
当没有与票证具有相同ID的ticket_planning时,它就像我想要的那样工作:显示一个空的嵌入字段。当ticket_planning存在且ticket_id字段已填满时,我可以完美地编辑相关的票证:返回正确的ticket_planning。
我在这里做错了什么?
Ticket.orm.xml的相关部分如下所示:
<one-to-one field="ticket_planning" target-entity="TicketPlanning" mapped-by="ticket">
<cascade>
<cascade-persist/>
</cascade>
</one-to-one>
TicketPlanning.orm.xml:
<one-to-one field="ticket" target-entity="Ticket" inversed-by="ticket_planning">
<join-column name="ticket_id" referenced-column-name="id" />
</one-to-one>
在TicketAdmin中添加ticket_planning的行:
->add('ticket_planning', 'sonata_type_admin', array('allow_extra_fields' => true))