簡體   English   中英

Symfony 2 Sonata Media捆綁包:保存媒體文件圖像而無需Sonata管理員

[英]Symfony 2 Sonata Media bundle: saving media file image without sonata admin

我正在使用Sonata Admin捆綁包和Sonata媒體捆綁包。 很好,但是我有使用Media的問題。 https://sonata-project.org/bundles/media/2-2/doc/index.html

示例我有一個Post Document,在Post中我有$ image變量,而targetDocument是Media。 並且,當我創建新的Post時,必須上傳圖像文件,並且在保存Post之前,必須先將上傳的圖像文件保存到Media Entity,然后將Post的$ image指向剛剛保存的Media Entity。

過帳憑證:

<?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;

我們能以任何方式訪問媒體實體並將上傳文件保存到“發布文檔”功能中嗎? 我讀過這篇文章,但對您沒有更多幫助。

https://sonata-project.org/bundles/media/master/doc/reference/form.html

答案在這里:

在上面的代碼中,我們必須先將上傳的圖片保存到媒體,然后將其指向帖子:

    $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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM