私は symfony2.3 と admin ジェネレーター バンドルを使用しています。ファイル フィールドを持つエンティティがあります。そのフィールドを必須としてマークしたいと思います。いくつかの方法を試しましたが、期待どおりに機能しません。
これは、エンティティ内の私のファイル フィールドです。
/**
* @Assert\NotNull()
* @Assert\Image(
* maxSize="50k",
* maxSizeMessage = "El tamaño maximo de la imagen es de {{ limit }}kb",
* minWidth = 237,
* maxWidth = 237,
* minHeight = 170,
* maxHeight = 170,
* minWidthMessage = "La imagen debe tener {{ min_width }}px de ancho.",
* minHeightMessage = "La imagen debe tener {{ min_height }}px de alto.",
* maxWidthMessage = "La imagen debe tener {{ max_width }}px de ancho.",
* maxHeightMessage = "La imagen debe tener {{ max_height }}px de alto."
* )
* @Vich\UploadableField(mapping="product_mapping", fileNameProperty="fileName")
*
* @var File $file
*/
protected $file;
/**
* @var string $fileName
*
* @ORM\Column(name="fileName", type="string", length=255, nullable = false)
*/
protected $fileName;
@Assert\NotNull() と nullable = false に注意してください。
この構成では、新しいエンティティの作成を検証できます (ファイル フィールドを空にすると、管理ジェネレーター バンドルにメッセージが表示されます: フィールドを null にすることはできません...)。 ) 作成されたエンティティ、NotNull の検証が発生します (以前に有効なファイルで作成されたエンティティで)。エンティティを更新できるように、ファイルを再度アップロードする必要があります。
これは管理ジェネレーター (entity-generator.yml) の構成です。
file:
label: Imagen
formType: single_upload
dbType: string
addFormOptions:
#required: true ## this launch a exception
previewFilter: 150x150_outbound_thumnail
help: "La imagen del producto debe tener 237px de ancho y 170px de alto, y no debe exceder los 50kb."
前もって感謝します