【发布时间】:2018-05-12 22:02:02
【问题描述】:
我有一个带有“图像”字段的实体“课程”。
这是 CoursType.php 的构建器
$builder
->add('titre')
->add('image', FileType::class, array('data_class' => null, 'label'=>false,'required'=>false))
->add('videoIntro')
);
问题出在“编辑表单”中,当我提交此表单而不上传新图像时,空值将传递给“图像”。
这是editAction的控制器代码
public function editAction(Request $request, Cours $cour)
{
$em = $this->getDoctrine()->getManager();
$deleteForm = $this->createDeleteForm($cour);
$editForm = $this->createForm('LearnBundle\Form\CoursType', $cour);
$editForm->handleRequest($request);
if ($editForm->isSubmitted() && $editForm->isValid())
{
$image=$cour->getImage();
$imageName = md5(uniqid()).'.'.$image->guessExtension();
$image->move($this->getParameter('images_directory'),$imageName);
$cour->setImage($imageName);
$em->flush();
return $this->redirectToRoute('cours_edit', array('id' => $cour->getId()));
}
return $this->render('cours/edit.html.twig', array(
'cour' => $cour,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),
));
}
【问题讨论】:
-
所以你需要在处理之前测试图像是否真的是由用户设置的,就像它是发送的一样
-
请你给我推荐几行代码,因为我尝试了几十次,但我失败了