编辑现有的Sonata Admin表单使用错误的嵌入式表单ID

时间:2016-06-03 15:53:35

标签: php symfony sonata-admin

在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))

0 个答案:

没有答案