2016-11-07 29 views
0

我已經在FileType字段中添加了一些內容,例如顯示有關允許的文件大小和預覽圖像的信息(如果適用)。在Symfony表單類型中添加額外的未映射字段

現在,我想要實現的是,對於非必需文件字段,還會顯示一個附加(未映射)複選框,以允許用戶刪除現有文件。

首先,我嘗試了form typ extension。現在我使用專用的表單類類。但是,我還不能應付它。

這是我目前在做什麼:

  1. 自定義文件類型:

    public function buildForm(FormBuilderInterface $builder, array $options) 
        { 
         $fieldName = $builder->getForm()->getConfig()->getName(); 
    
         $builder->add($fieldName, 'Symfony\Component\Form\Extension\Core\Type\FileType', $options); 
    
         if ($options['required']) { 
          return; 
         } 
    
         $builder->add($fieldName . 'DeleteFile', 'Symfony\Component\Form\Extension\Core\Type\CheckboxType', [ 
          'mapped' => false, 
          'label' => 'Delete existing file', 
          'required' => false, 
          'attr' => [ 
           'title' => 'Delete this file ?' 
          ] 
         ]); 
        } 
    
  2. 模板:

    {% block my_field_upload_widget %} 
        {% spaceless %} 
    
        {# the file input field #} 
        {{ block('file_widget') }} 
    
        {% if file_path|default and not required %} 
         {# the additional checkbox #} 
         {{ form_row(attribute(form, id ~ 'DeleteFile')) }} 
        {% endif %} 
    
        {% endspaceless %} 
    {% endblock %} 
    

目前有沒有顯示輸入字段(nei其他文件字段和複選框)。

任何關於更好的方法的想法或指針我做錯了什麼?

回答

0

我可以通過

<input type="file" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/> 
更換

{{ block('file_widget') }} 

解決這個

相關問題