Hallo heute, ich muss eine Validierung für Dateien (da Bilder) über AJAX senden, habe ich große Probleme mit der Validierung als Annotation, die nur funktionieren, wenn wir normal Formular senden! nicht wenn Dateien über Ajax kommen:/das ist Code für Symfony, der unsere Sammlung von Dateien validieren kann und Fehlermeldungen an ihren propertyPath setzen kann.Symfony2 wie validieren Dateien über AJAX senden
$validatorImage = new Image(); // Symfony\Component\Validator\Constraints\Image
$validatorImage->mimeTypesMessage = 'image.mimeTypesMessage';
if ($form->isSubmitted()) {
$i = 0;
foreach ($form->get('images') as $image) {
$errorList = $this->get('validator')->validateValue(
$image->get('file')->getData(),
$validatorImage
);
if (count($errorList)) {
foreach ($errorList as $error) {
$image->addError(
new FormError(
$error->getMessage(),
null,
array(),
null,
array('propertyPath' => 'children[images].data['.$i.'].file')
)
);
}
}
$i++;
}
}
// gültig usw. unsere js Aktion wie ähnlich wie diese:
$('form[name="product"]').on('submit', function() {
var _self = $(this);
var data = _self.serialize();
data = new FormData(_self[0]);
data.append('ajax',true);
$.ajax({
method: "POST",
url: url,
data: data,
cache: false,
contentType: false,
processData: false,
enctype: 'multipart/form-data',
});
});
Hallo, Danke für die Antwort, ich teste und rząd es wieder, wenn ich wieder nach Hause komme. $ request-> isXmlHttpRequest() Dies ist eine Möglichkeit zu überprüfen, ob das Formular von Ajax übergeben wird. –
Ja, das wird wahr, wenn das Formular über Ajax gesendet wird. – Jeet