Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony 2 Sonata媒体包:在没有Sonata管理员的情况下保存媒体文件映像_Php_Symfony_Sonata Media Bundle - Fatal编程技术网

Php Symfony 2 Sonata媒体包:在没有Sonata管理员的情况下保存媒体文件映像

Php Symfony 2 Sonata媒体包:在没有Sonata管理员的情况下保存媒体文件映像,php,symfony,sonata-media-bundle,Php,Symfony,Sonata Media Bundle,我使用了Sonata管理包和Sonata媒体包。很好,但是我在使用媒体方面有问题。 例如,我有一个Post文档,在Post中我有$image变量,targetDocument是Media。当我创建新帖子时,我必须上传图像文件,在保存帖子之前,我必须先将上传图像文件保存到媒体实体,然后我将$image of Post指向刚刚保存的媒体实体 邮寄文件: <?php namespace Acme\Bundle\PostBundle\Document; use Doctrine\ODM\Mon

我使用了Sonata管理包和Sonata媒体包。很好,但是我在使用媒体方面有问题。

例如,我有一个Post文档,在Post中我有$image变量,targetDocument是Media。当我创建新帖子时,我必须上传图像文件,在保存帖子之前,我必须先将上传图像文件保存到媒体实体,然后我将$image of Post指向刚刚保存的媒体实体

邮寄文件:

<?php
namespace Acme\Bundle\PostBundle\Document;

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @MongoDB\Document(repositoryClass="Acme\Bundle\PostBundle\Repository\PostRepository")
 */
class Post
{
    /**
     * @MongoDB\Id
     */
    protected $id;

    /**
     * @MongoDB\String
     */
    protected $name;

    /**
     * @MongoDB\ReferenceOne(targetDocument="Application\Sonata\MediaBundle\Document\Media", nullable=true )
     */
    protected $image;
答案如下:

在上面的代码中,我们必须先将上传图像保存到媒体,然后将其指向帖子:

    $mediaManager = $this->container->get('sonata.media.manager.media');
    $media = new Media();
    $media->setBinaryContent($uploadImage);
    $media->setContext('default');
    $media->setProviderName('sonata.media.provider.image');
    $mediaManager->save($media);
    $post->setImage($media);
    print_r($media);exit;
答案如下:

在上面的代码中,我们必须先将上传图像保存到媒体,然后将其指向帖子:

    $mediaManager = $this->container->get('sonata.media.manager.media');
    $media = new Media();
    $media->setBinaryContent($uploadImage);
    $media->setContext('default');
    $media->setProviderName('sonata.media.provider.image');
    $mediaManager->save($media);
    $post->setImage($media);
    print_r($media);exit;

我有
未定义的变量:mediaManager
,即使我使用
use Sonata\MediaBundle\Entity\mediaManager。如何访问$mediaManager?
mediaManager=$this->container->get('sonata.media.manager.media')
你能告诉我uploadImage的情况吗?我愿意创建一个api,将图像存储到媒体包我有
未定义的变量:mediaManager
即使我使用
use Sonata\MediaBundle\Entity\mediaManager。如何访问$mediaManager?
mediaManager=$this->container->get('sonata.media.manager.media')你能告诉我上传图片的情况吗?我愿意创建一个api,将图片存储到媒体包中