2017-02-08 6 views
1

私の編集フォームのファイルウィジェットに問題があります。symfonyファイルを編集するフォーム

the Symfony documentationでは、最初の段落の最後で、それは言う:

はすでに永続項目を編集するためのフォームを作成する場合は、ファイル形式 タイプはまだFileインスタンスを期待しています。永続エンティティは、今 だけ相対ファイルパスが含まれているとして、あなたは最初に保存されたファイル名の 構成されたアップロードパスを連結して、新しいFileクラスを作成する必要があります。

use Symfony\Component\HttpFoundation\File\File; 

// ... 

$product->setBrochure(
    new File($this->getParameter('brochures_directory').'/'.$product->getBrochure()) 
); 

しかし、私はこれを適用しても、私のフォームでは、私のファイルウィジェットは "ファイルが選択されていません"と表示しています(私の翻訳がOKならば)。 また、合計フォームにファイルが添付されている必要があるため、ユーザーはファイルを再度添付する必要があります。

ファイルが既にアップロードされていることを表示し、そのファイルを別のファイルに更新する機会のみを与える方法はありますか?

EDIT:SOポスト関連:Non blank file input field in Symfony2 form

答えて

0

あなたは(あなたがそれのためにゲッターを作成する必要がありますファイル名やファイルのさえサムネイルを示してフォームに非マッピングされたフィールドを追加することができ
。 例:

$builder->add('file_preview', 'text', array('label' => 'Existing File', 'required' => false, 'mapped' => false)); 

それとも、単一のフィールドを使用して、小枝でフォームを表示する場合は、名前だけ/プレビューに追加などの
何かを;。

<div class="my-form"> 
    <div class="{{ obj.file.name }}"</div> 
    <div>{{ form_widget(form.file) }}</div> 
</div> 
+0

しかし、私はこのウィジェットを保存して、それを以前にアップロードしたファイルで自動完成できないのですか? –

+0

これはhtmlのファイル入力が新しいファイルを追加するためのものではありません。ファイルがあるオブジェクトを編集するときには、ファイルフィールドを無視して他のデータの変更のみを許可するか、別のファイルをアップロードするオプションを与えます – Rooneyl

+0

それを編集できるファイルは決して 'NotBlank'ですか?そのような共通のことは文書で説明されていないことがわかりました –

関連する問題