【发布时间】:2015-03-18 21:07:05
【问题描述】:
我正在构建一个用于上传许多照片的包。
我使用表格来显示我的照片表格。
我的问题是,当我点击“修改器”时,如果我没有更改“Activé”或“Titre”,则什么也做不了。
public function ajaxEditPhotoAction(Request $request, $id) {
$error = null;
$em = $this->getDoctrine()->getManager();
$repository = $em->getRepository("FDMFileUploaderBundle:Photo");
$photo = $repository->find($id);
$form = $this->get('form.factory')->create(new PhotoType(), $photo);
if ($request->isMethod('POST')) {
$form->bind($request);
if ($form->isValid()) {
$em->flush();
}
else {
$error = "Mauvaise donnée";
}
}
else {
$error = "Wrong Method";
}
return $this->render('FDMFileUploaderBundle:Default:editPhoto.html.twig', array(
"error" => $error
)
);
}
如果我在isValid() 之后有这行,那可以,但是当“Activé”或“Titre”更改时,我的照片会上传两次。
$photo->upload();
如果我的实体中持久存在的属性没有更改,我如何强制上传?
我查看了学说注释,但没有找到解决方案。
Ajax 提交
var data = new FormData(this);
$.ajax({
type: "POST",
url: url,
data: data,
contentType: false,
cache: false,
processData:false,
success: function(data) {
alert("Success");
},
error: function(xhr, textStatus, errorThrown) {
alert("Error "+xhr+textStatus+errorThrown);
}
});
【问题讨论】:
标签: php ajax symfony doctrine-orm