Php 未找到Symfony2实体-关系中的文件上载
我有一个实体,它有一个多通和一个文件实体 我的问题是当我尝试删除时 我就是这样创建的:Php 未找到Symfony2实体-关系中的文件上载,php,symfony,symfony-2.1,Php,Symfony,Symfony 2.1,我有一个实体,它有一个多通和一个文件实体 我的问题是当我尝试删除时 我就是这样创建的: /** * Creates a new Catalogo entity. * * @Route("/create", name="catalogo_create") * @Method("POST") * @Template("BWSBajaCupcakesBundle:Catalogo:new.html.twig") */ public function createAction(Request
/**
* Creates a new Catalogo entity.
*
* @Route("/create", name="catalogo_create")
* @Method("POST")
* @Template("BWSBajaCupcakesBundle:Catalogo:new.html.twig")
*/
public function createAction(Request $request)
{
$entity = new Catalogo();
$file = new Archivo();
$form = $this->createForm(new CatalogoType(), $entity);
$form->bind($request);
$file_form = false;
if($form['file']->getData()){
$file_form = $form['file'];
//unset($form['file']);
}
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
if($file_form){
$tipoImagen = $em->getRepository('BWSBajaCupcakesBundle:TipoArchivo')->find(1);
$file->setFile($file_form->getData());
$file->setPrincipal(true);
$file->setTipo($tipoImagen);
$file->setFechaCaptura(date_create(date("Y-m-d H:i:s")));
$file->upload();
$em->persist($file);
$entity->setImagen($file);
}
$em->flush();
return $this->redirect($this->generateUrl('catalogo_show', array('id' => $entity->getId())));
}
return array(
'entity' => $entity,
'form' => $form->createView(),
);
}
我是这样删除的:
/**
* Deletes a Catalogo entity.
*
* @Route("/{id}/delete", name="catalogo_delete")
* @Method("POST")
*/
public function deleteAction(Request $request, $id)
{
$form = $this->createDeleteForm($id);
$form->bind($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('BWSBajaCupcakesBundle:Catalogo')->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find Catalogo entity.');
}
$em->remove($entity);
$em->flush();
}
return $this->redirect($this->generateUrl('catalogo'));
}
这就是我的关系:
/**
* @ORM\ManyToOne(targetEntity="BWS\BajaCupcakesBundle\Entity\Archivo", cascade={"all"})
* @ORM\JoinColumn(name="imagen_id", referencedColumnName="id")
*/
private $imagen;
我不明白,我在其他Symfony应用程序中也这么做了,但从来没有出现过这个问题
提前感谢你的帮助
干杯尽管您的评论中有答案,但我认为我无论如何都会给出代码(基于cookbook文档实体):
尽管您在评论中给出了答案,但我认为我无论如何都会给出代码(基于cookbook文档实体):
Face palm,我在文件实体中的PostRemove callbackcycle上有一个removeUpload。。。我在使用名称和网页删除PostRemove之前删除了实体,即在alredy removed实体中,可以完成。因此,基本上我是在调用dindt在entitymanager中存在的网页和文件名。希望这个能有用。Face palm,我的文件实体中有一个关于PostRemove callbackcycle的removeUpload。。。我在使用名称和网页删除PostRemove之前删除了实体,即在alredy removed实体中,可以完成。因此,基本上我是在调用dindt在entitymanager中存在的网页和文件名。希望这个能有用。
/**
* Pre remove upload
*
* @ORM\PreRemove()
*/
public function preRemoveUpload()
{
$this->temp = $this->getAbsolutePath();
}
/**
* Remove upload
*
* @ORM\PostRemove()
*/
public function removeUpload()
{
if ($this->temp) {
unlink($this->temp);
}
}