2016-10-28 4 views
1

最後にアップロードしたファイル名を表示するカスタムファイルアップロードウィジェットを作成しています。私はにformTypeクラスを作成し、form/fields.html.twigに私は次のように追加しました:symfony 2.8 - フォームフィールドウィジェットテンプレートに特定のエンティティ値を表示

{% block custom_document_widget %} 
    {% spaceless %} 
     {# here I want to include code to display filename #} 

     {# display file input #} 
     {% set type = 'file' %} 
     {{ block('form_widget_simple') }} 
    {% endspaceless %} 
{% endblock %} 

私は現在のフィールドの値が{{ form.vars.value }}を解析できることを知っているが、最終的にフィールドはファイル入力で、ファイル名の値を持っていませんこれは以前にアップロードされたものです。

アップロードされたファイル名を格納するために、私は$filenameという変数をエンティティに持ち、それをフィールドウィジェットテンプレートに表示したいと考えています。私はそれにどのようにアプローチできますか?私CustomDocsTypeで

$builder 
    ->add('resumeFile', CustomDocsType::class, array(
     'required' => false, 
     'constraints' => array(
      new File(array(
       'mimeTypes' => array(
        'application/pdf', 
       ), 
       'mimeTypesMessage' => 'mimetype', 
      )), 
     ), 
     'filename' => $trainee->getResumeOriginal(), 
    )) 

+0

私は[data transformer](http://symfony.com/doc/current/form/data_transform ers.html)はあなたが探しているものです。 – nifr

答えて

0

は最後に、私は私のFileTypeを表し、埋め込みフォームのオプションとして、ファイル名を渡すために持っていた

class CustomDocsType extends AbstractType 
{ 
    public function buildView(FormView $view, FormInterface $form, array $options) 
    { 
     parent::buildView($view, $form, $options); 

     $view->vars = array_merge($view->vars, array(
      'filename' => $options['filename'] 
     )); 
    } 

    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults(array(
      'filename' => null 
     )); 
    } 

    public function getParent() 
    { 
     return FileType::class; 
    } 
} 

そして今、私が唯一のアクセスもしなければなりませんでしたテンプレート内のファイル名:

{{ form.vars.filename }} 
関連する問題