1

我的 Symfony2 项目有一个文件上传功能。我以http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html为例。

问题是我的 @ORM\PostPersist() 没有被触发,我的文件没有存储在特定的文件夹中。

这是我所拥有的:

我将在其中管理文件的 1 个实体“手稿”:

 /**
 * @ORM\PostPersist()
 * @ORM\PostUpdate()
 */
public function upload()
{
    if (null === $this->file) {
        return;
    }

    $this->file->move( $this->getUploadRootDir().date('Ymdhis').'_'.$this->file->getClientOriginalName() );
}

我试图在那里放一个 var_dump() 但 var_dump() 从未采取过行动,所以我永远不会进入那里。

在我的表格中,我有文件:

 public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('file', 'file', array('label'=> 'HTM File', 'required' => true));
}

最后,在控制器中,我有

if ($request->isMethod('POST')) {

        $form->bind($request);

        if ($form->isValid()) {
            $em_scipub->persist($enquiry);  
            $em_scipub->flush();
            ....
4

1 回答 1

4

我解决了这个问题,我忘记添加的想法是@ORM\HasLifecycleCallbacks

因此,在 Manuscript 实体中,它应该看起来像这样:

/**
* Manuscripts
*
* @ORM\Table(name="manuscripts")
* @ORM\Entity
* @ORM\HasLifecycleCallbacks
* 
*/

class Manuscript
{
  ....
于 2013-07-11T08:30:27.337 回答