0

我的项目实际上是创建一个允许我发布 gif、jpg 等的网站。

我正在使用 VichuploaderBundler 上传文件并将其保存到我的应用程序中的特定存储库

#vich uploader Configuration
vich_uploader:
     db_driver: orm
     mappings:
        product_image:
            uri_prefix:         /images/posts
            upload_destination: '%kernel.root_dir%/../web/images/posts'
            namer:              vich_uploader.namer_uniqid
            inject_on_load:     false
            delete_on_update:   true
            delete_on_remove:   true

我正在创建一个 API 来创建和呈现资源。

我正在尝试使用邮递员创建带有发布请求的帖子。在这篇文章中,我想保存一个图像 throw vichuploader。(这适用于经典形式)。

这是我的问题:

我的帖子是根据我的邮递员请求创建的。但是我上传的文件没有保存在

                 /**
                 * @Rest\View(statusCode=Response::HTTP_CREATED)
                 * @Rest\Post("/posts")
                 */
                public function postPostsAction(Request $request)
                {
                    $post = new Post();
                    $post->setTitle($request->get('title'))
                        ->setDescription($request->get('description'))
                        ->setImageName($request->get('image_name'))
                        ->setImageFile($request->get('imageFile'))

                        // It is required that at least one field changes if you are using doctrine
                        // otherwise the event listeners won't be called and the file is lost
                        ->setUpdatedAt(new \DateTime());


                    $em = $this->get('doctrine.orm.entity_manager');
                    $em->persist($post);
                    $em->flush();

                    return $post;
                }

这是我的邮递员

感谢您对我的帖子的帮助和反馈。

4

1 回答 1

1

我发现如何解决这个问题,实际上非常简单!

public function postPostsAction(Request $request)
{
    $post = new Post();
    $post->setTitle($request->get('title'))
        ->setDescription($request->get('description'))
        ->setImageName($request->get('image_name'))
        ->setImageFile($request->files->get('imageFile'))
        // It is required that at least one field changes if you are using doctrine
        // otherwise the event listeners won't be called and the file is lost
        ->setUpdatedAt(new \DateTime());


    // On fait appel à doctrine pour seter un id lors de la création en base
    $em = $this->get('doctrine.orm.entity_manager');
    $em->persist($post);
    $em->flush();

    return $post;
}

感谢 ->files 语句,我的图片保存在正确的目录中

于 2017-02-17T09:11:32.383 回答