当我尝试编辑现有对象时,我得到了除文件以外的所有元素,其输入保持为空,这迫使我再次插入文件。 我该如何解决这个问题
我的代码如下
在实体类中
/**
* @ORM\Column(type="string", length=255)
* @Assert\File(mimeTypes={ "application/pdf" })
*/
private $dce;
以formType
->add('dce', FileType::class, ['label' => 'DCE (PDF)', 'data_class' => null])
我要在控制器中添加或编辑的动作
/**
* @Route("/dao/ajouter_dao", name="ajouter_dao")
* @Route("/dao/{id}/modifier_dao", name="modifier_dao")
*/
public function enregistrerDAO(MarcheDao $dao = null, Request $request, ObjectManager $manager){
//S'il ya pas de DAO, On le crée
if(!$dao){
$dao = new MarcheDAO();
}
// On crée le formulaire
$formdao= $this->createForm(DAOType::class, $dao);
$formdao->handleRequest($request);
// On vérifie si notre formulaire est bien soumis avec les bonnes informations !!
if ($formdao->isSubmitted() && $formdao->isValid()) {
if(!$dao->getId()){
$dao->setDateLancement(new \DateTime());
$dao->setEtat("1");
//$dao->setDateCloture(new \DateTime('tomorrow'));
}
// Ici on récupére notre fichier DCE
$file= $dao->getDce();
// On définit un nouveau nom à notre chére fichier !!
$fileName = $this->generateUniqueFileName().'.'.$file->guessExtension();
// On lui déplace dans le bon en droit
$file->move($this->getParameter('repertoire_DCE'),$fileName);
// On modifie le nom du fichier au niveau de la base des données
$dao->setDce($fileName);
$manager->persist($dao); // On prépare notre réquéte
$manager->flush(); // On l'exécute