添加非持久性Symfony表单复选框会导致持久性陷入困境

时间:2015-03-09 16:12:28

标签: forms symfony checkbox persist

我正在尝试在Symfony的表单中添加一个复选框。 该复选框的目的是最终删除上传的图像(如果选中)。 所以它只在上传文件时显示。我还希望它在表单实体持久化之前取消上传。 但我还没有,那个应该这样做的代码目前已被注释掉了。 此复选框对应于File类中的布尔属性,以便允许在控制器中访问其值。一开始该属性不存在,因此我无法从实体或表单/ getData访问此值。

我的问题是让我的formtype中的字段与持久性混淆。 从表格中获得的所有财产均被认为是无效的。即使选择了文件,也使用uniqid等重命名。当时间到来时,字段被认为是空的。从表单中删除DeleteFile解决了这个问题。我尝试使用property mapped = false设置它,但没有用。

以下是表单中的代码:

 public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('file', 'file', array(
                'label' => false
            ))
        ->add('deleteFile','checkbox', array(
                'label' => 'Delete File',
                'attr' => array('class' => 'delete_file'),
                'mapped' => false,
            ))
    ;
}

感谢您的投入。如果一个更好的解决方案可以让我不必处理我感兴趣的这个问题,我也对这个“界面”的替代解决方案持开放态度。

0 个答案:

没有答案