私のフォームのdata_class
である私のDoctrineのエンティティでは、私はこのように定義されたファイルのプロパティがあります。また非空白のファイル入力フィールド
/**
* Image.
*
* @Assert\NotBlank
* @Assert\File
* @Assert\Image(minWidth="138", minHeight="96")
*/
protected $file;
は、->add('file', 'file')
とタイプを形成するためにこれを追加しました...
エンティティの作成は完璧ですが、フォームを使用してこのエンティティを更新すると問題が発生します。それは@Assert \ NotBlankを持っているので、ファイルをもう一度尋ねます。このフォームには他のフィールドがあるので、私はすべてのアップデートでイメージを再アップロードしたくありません。
@Assert \ NotBlankを削除すると、everithingは正常に機能しますが、このファイルフィールドを必須にします。
ありがとう、それは私にアイデアを与えましたdefinatelly :)なぜあなたは別のisUpdateブール値が必要なのか分からず、その値はどのように設定されていますか? 'if(null!== $ this-> getId())'をチェックしました。私の要点https://gist.github.com/3066507を確認することができます。検証者https://gist.github.com/3066488にコンテキストを渡すことができたときには、Symfony 2.0でもファンシーでした。再度、感謝します。 – umpirsky
ああ、良い点。エンティティIDとnullを比較することで、操作が「追加」か「更新」かどうかを確実に判断できます。そして、第二の要点は私が推測する完璧な解決策です:) –
ええ、あまりにも彼らはExecutionContextを閉じ、クラスの外からプロパティパスを設定することはできませんhttps://github.com/symfony/symfony/blob/ac6939441fb61a17184f536391387aca78b10013 /src/Symfony/Component/Validator/ExecutionContext.php – umpirsky