Php Symfony2:插入文件集合

Php Symfony2:插入文件集合,php,forms,symfony,collections,doctrine-orm,Php,Forms,Symfony,Collections,Doctrine Orm,在尝试插入具有文件字段的实体集合时,我无法确定是否有更好的方法来创建由Document::Document注释强制转换的UploadedFile对象。这是我的代码,非常感谢对它的任何改进帮助:) 去看看我的表。这应该会给你一些启发:)谢谢,我用那个指南创建了文件上传,也遵循了收集指南的步骤,但重点是合并这两个。上载告诉您在插入时上载,但不告诉您如何遍历它们为什么需要遍历它们?Symfony2表单组件应将每个上载的文件分配给单独的实体本身。您所需要的只是一个OneToMany关系和正确的表单类型。

在尝试插入具有文件字段的实体集合时,我无法确定是否有更好的方法来创建由Document::Document注释强制转换的UploadedFile对象。这是我的代码,非常感谢对它的任何改进帮助:)


去看看我的表。这应该会给你一些启发:)谢谢,我用那个指南创建了文件上传,也遵循了收集指南的步骤,但重点是合并这两个。上载告诉您在插入时上载,但不告诉您如何遍历它们为什么需要遍历它们?Symfony2表单组件应将每个上载的文件分配给单独的实体本身。您所需要的只是一个
OneToMany
关系和正确的表单类型。我想这已经找到了问题,还没有解决它,但显然我忽略了控制器中集合的set方法。这也非常有帮助!再次感谢
public function createAction(Request $request) {
    $em = $this->getDoctrine()->getManager();

    $user = $this->get('security.context')->getToken()->getUser();
    $entity = new Paper();
    $form = $this->createCreateForm($entity);
    $form->handleRequest($request);

    if ($form->isValid()) {

        $entity->setAuthor($user);
        $em->persist($entity);

        // chotest foreach in the universe
        if (isset($_FILES) && array_key_exists('arkad1a_cfpbundle_paper', $_FILES)) {
            foreach ($_FILES['arkad1a_cfpbundle_paper']['name']['documents'] as $k => $v) {
                $document = new UploadedFile(
                    $_FILES['arkad1a_cfpbundle_paper']['tmp_name']['documents'][$k]['document'],
                    $_FILES['arkad1a_cfpbundle_paper']['name']['documents'][$k]['document'],
                    $_FILES['arkad1a_cfpbundle_paper']['type']['documents'][$k]['document'],
                    $_FILES['arkad1a_cfpbundle_paper']['size']['documents'][$k]['document'],
                    $_FILES['arkad1a_cfpbundle_paper']['error']['documents'][$k]['document'],
                    false
                );

                $Document = new \Arkad1a\CFPBundle\Entity\Document();
                $Document->setAuthor($user)
                        ->setDocument($document)
                        ->setPaper($entity)
                        ->upload();
                $em->persist($Document);
            }
        }

        $em->flush();

        return $this->redirect($this->generateUrl('paper_show', array('id' => $entity->getId())));
    } else {
        die('invalid');
    }

    return array(
        'entity' => $entity,
        'form' => $form->createView(),
    );
}