我的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();
....
答案 0 :(得分:4)
我解决了这个问题,我忘了添加的想法是@ORM \ HasLifecycleCallbacks
因此,在Manuscript实体中,它看起来应该是这样的:
/**
* Manuscripts
*
* @ORM\Table(name="manuscripts")
* @ORM\Entity
* @ORM\HasLifecycleCallbacks
*
*/
class Manuscript
{
....