问题描述
有编辑表格。一个字段不可编辑。我试图将选项设置为disable = true,attr => ['readonly'=> true],它们使该选项不可编辑,但是在提交表单时,它将被提交,将该字段设置为null,然后在获取该字段时出现错误值,因为它不能为空。
因此,我想使该字段甚至不作为字段存在,而是以编辑形式显示其值。有办法吗?或者,如果您知道在提交具有禁用字段的表单时如何摆脱错误,那也可以。
public function configureFormFields(FormMapper $form)
{
if ($this->subject->getId() === null) {
$form
->add('name','text',['required' => true])
->add('codeMod',['required' => true])
->add('position',['required' => false])
->add('projectMod',EntityType::class,['class' => ProjectEntity::class])
->add('active','checkbox',['required' => false])
->add('first',['required' => false])
->add('last',['required' => false])
->add('denialReasons',['required' => false])
;
} else {
$form
->add('name',['required' => false])
// ->add('project',TextType::class,['label' => 'form.label_project_mod','attr' => [/*'readonly' => true,*/ 'disabled' => true]])
->add('project','class' => ProjectEntity::class,'attr' => ['readonly' => true,'disabled' => true],// 'template' => 'ClaimClaimBundle:ClaimStatusAdmin:show_project.html.twig'
]
)
// ->add('projectMod',*/ 'disabled' => true]])
->add('active',['required' => false])
;
}
}
当前出现错误:
类型错误:Qms \ ClaimComponent \ Status \ ManagedModel \ StatusManaged :: getProject()的返回值必须实现Qms \ CoreComponent \ Domain \ Project \ ManagedModel \ ProjectManagedInterface接口,返回null
这是因为如果我禁用了字段,则字段值设置为null。
一种方法是重写edit.html.twig,现在使用奏鸣曲默认模板。但是我没有找到快速的方法,如果我覆盖它,样式将关闭。因为一个字段看起来太多了。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)