Trong thực thể thuyết của tôi, đó là data_class
cho hình thức của tôi, tôi có một tài sản tập tin định nghĩa như thế này:Non trống trường đầu vào tập tin ở dạng Symfony2
/**
* Image.
*
* @Assert\NotBlank
* @Assert\File
* @Assert\Image(minWidth="138", minHeight="96")
*/
protected $file;
Ngoài ra, thêm vào nó để tạo kiểu với ->add('file', 'file')
...
Tạo đối tượng hoạt động hoàn hảo, nhưng vấn đề là khi tôi sử dụng biểu mẫu để cập nhật thực thể này. Nó yêu cầu tệp một lần nữa, vì nó có @Assert \ NotBlank. Vì tôi có các trường khác trong biểu mẫu này nên tôi không muốn tải lại hình ảnh lên mọi bản cập nhật.
Khi tôi xóa @Assert \ NotBlank, everithing hoạt động tốt, nhưng tôi muốn trường tệp này là bắt buộc.
Bất kỳ ý tưởng nào?
Cảm ơn, điều đó đã cho tôi ý tưởng, definatelly :) Tôi không hiểu tại sao bạn cần một isUpdate boolean, và làm thế nào là giá trị thiết lập? Tôi đã kiểm tra 'if (null! == $ this-> getId())'. Bạn có thể kiểm tra gist của tôi https://gist.github.com/3066507. Nó thậm chí còn tuyệt vời hơn trong Symfony 2.0 khi bạn có thể chuyển ngữ cảnh tới trình xác nhận hợp lệ https://gist.github.com/3066488. Cảm ơn một lần nữa. – umpirsky
Ồ, điểm tốt. Bằng cách so sánh id thực thể với null, bạn chắc chắn có thể nói liệu hoạt động là "thêm" hay "cập nhật". Và gist thứ hai là giải pháp hoàn hảo tôi đoán :) –
Vâng, quá xấu họ đã đóng ExecutionContext và không thể đặt đường dẫn thuộc tính từ bên ngoài lớp nữa https://github.com/symfony/symfony/blob/ac6939441fb61a17184f536391387aca78b10013 /src/Symfony/Component/Validator/ExecutionContext.php – umpirsky