我需要在Sonata中创建一个自定义动作,我已经完成了。原因是,由于用例复杂,我的表单显示的字段并不直接与单个实体相关。结果,我的自定义操作创建了一个Symfony表单,然后返回一个奏鸣曲模板。
问题是,奏鸣曲模板不会以相同的方式处理表单,因此诸如ModelListType
之类的内容显示为文本输入,而不是应有的显示。
如果我确实使用了admin并包含了与该类所针对的admin无关的字段,那么我会收到以下错误消息:
不可能在null变量上调用方法(“ id”)。
字段:
->add('client', ModelListType::class, [
'class' => Client::class,
'mapped' => false,
]);
那么,如何在保留奏鸣曲以使用具有样式和功能性的字段类型的同时,使用自定义操作来控制提交表单时发生的情况?
我不会覆盖默认的CRUDController@create
,因为这不是一个好主意。