2016-09-16 7 views
4

私のウェブサイトに.pdfファイルをアップロードする方法を検討中です。Symfony2 FileType入力フォームで常にnullを返します

文字列にファイルの名前を含むエンティティを作成しました。 エンティティマッピングがあります:

<field name="pdf" type="string" column="pdf" length="200" nullable="true"/> 

私は、入力ファイル形式:

$builder 
     ->add('pdf', FileType::class, array('label' => 'Fiche de paie')) 
     /* other input */ 
    ; 

私のフォームのビュー:

{{ form_start(form) }} 
    {{ form_row(form._token) }} 
    <div class="modal-body row"> 
     <div class="col-md-6 col-sm-8"> 
      /* other input */ 
      {{ form_row(form.pdf) }}} 
     </div> 
     <div class="col-md-6 col-sm-8"> 
      /* other input */ 
     </div> 
    </div> 

    <div class="modal-footer"> 
     <button type="button" class="btn btn-info" id="save">{% trans %}Save{% endtrans %}</button> 
    </div> 
    {{ form_end(form, { 'render_rest': false }) }} 

とコントローラがあります:

if ($form->isSubmitted() && $form->isValid()) { 
     $pdf = $salaire->getPdf(); 

     if ($pdf == null) { /* Always true */ 
      $salaire->setPdf('test'); 
     } 

     /* operations to extract the file name and set it to the pdf variable in salaire */ 

     $em->persist($salaire); 
     $em->flush(); 

     return $this->redirectToRoute('salaires_index', array("id" => $remuneration->getId())); 
    } 

T彼は問題は、ファイルを入力しても、入力の値が

の場合
->salaire->getPdf() 

結果は常にnullです。

私はエンティティ内の文字列にフォーム入力FileTypeを設定していたと思いましたが、エンティティのUploadedFile変数に設定しようとしましたが、結果はまだnullです。

ありがとうございました。

答えて

0

フォーム要素の正しいenctype(フォームタグの値はenctype="multipart/form-data")を設定してください。

を参照documentationあなたのような何かを行うことができます。

{{ form_start(form, {'multipart': true}) }} 

希望私は同様の問題を抱えていたこのヘルプ

+0

あなたの助けをありがとうが、それはできませんでした。 – Julien

0

。アップロードされたファイルは常にnull値でした。コントローラのフォーム処理が正しくないことがわかりました。それが取り組んできたので、私は、ファイルタイプの要素を追加するまで

if ($request->isMethod('POST')) { 
    $form->submit($request->request->get($form->getName())); 
    if ($form->isSubmitted() && $form->isValid()) { 
    // handle form data 
    } 
} 

他のすべてのフィールドは、その価値を提供:

もともと私はこのようなものを持っていました。これは問題を解決します:

$form->handleRequest($request); // This bit was important 
if ($form->isSubmitted() && $form->isValid()) { 
// handle form data 
} 
関連する問題