Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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 4中的奏鸣曲媒体束模板_Php_Symfony_Sonata Admin_Symfony4_Sonata Media Bundle - Fatal编程技术网

Php Symfony 4中的奏鸣曲媒体束模板

Php Symfony 4中的奏鸣曲媒体束模板,php,symfony,sonata-admin,symfony4,sonata-media-bundle,Php,Symfony,Sonata Admin,Symfony4,Sonata Media Bundle,我已经在Symfony 4中安装了Sonata Media Bundle,一切都是正确的,但在Symfony 3方面有些不同 我在Sonata Admin中看不到该服务,当我将Sonata media bundle字段添加到Admin类时,会显示一个不同的模板 以下图片: 正如您所看到的,该模板在symfony4中不起作用,或者我的代码中缺少了一些内容 我的奏鸣曲媒体配置 媒体奏鸣曲 sonata_media: class:

我已经在Symfony 4中安装了Sonata Media Bundle,一切都是正确的,但在Symfony 3方面有些不同

我在Sonata Admin中看不到该服务,当我将Sonata media bundle字段添加到Admin类时,会显示一个不同的模板

以下图片:

正如您所看到的,该模板在symfony4中不起作用,或者我的代码中缺少了一些内容

我的奏鸣曲媒体配置

媒体奏鸣曲

    sonata_media:
            class:
                media: App\Application\Sonata\MediaBundle\Entity\Media
                gallery: App\Application\Sonata\MediaBundle\Entity\Gallery
                gallery_has_media: App\Application\Sonata\MediaBundle\Entity\GalleryHasMedia
            default_context: default
            contexts:
                default:
                    providers:
                        - sonata.media.provider.dailymotion
                        - sonata.media.provider.youtube
                        - sonata.media.provider.image
                        - sonata.media.provider.file
                        - sonata.media.provider.vimeo

                    formats:
                        small: { width: 100 , quality: 70}
                        big:   { width: 500 , quality: 70}

            cdn:
                server:
                    path: /upload/media

            filesystem:
                local:
                    # Directory for uploads should be writable
                    directory: "%kernel.project_dir%/public/upload/media"
                    create: false


            providers:
                # ...
                file:
                    # the resizer must be set to false, otherwhise this can delete icon files from the fs
                    resizer:    false
                image:
                   thumbnail: sonata.media.thumbnail.format          # default value
        #           thumbnail: sonata.media.thumbnail.consumer.format # can be used to dispatch the resize action to async task
        #            thumbnail: sonata.media.thumbnail.liip_imagine    # use the LiipImagineBundle to resize the image
                vimeo:
                    thumbnail: sonata.media.thumbnail.format          # default value
        #           thumbnail: sonata.media.thumbnail.consumer.format # can be used to dispatch the resize action to async task
        #           thumbnail: sonata.media.thumbnail.liip_imagine    # use the LiipImagineBundle to resize the image
                youtube:
                    thumbnail: sonata.media.thumbnail.format          # default value
        #           thumbnail: sonata.media.thumbnail.consumer.format # can be used to dispatch the resize action to async task
        #           thumbnail: sonata.media.thumbnail.liip_imagine    # use the LiipImagineBundle to resize the image
                dailymotion:
                    thumbnail: sonata.media.thumbnail.format          # default value
        #           thumbnail: sonata.media.thumbnail.consumer.format # can be used to dispatch the resize action to async task
        #           thumbnail: sonata.media.thumbnail.liip_imagine    # use the LiipImagineBundle to resize the image
我的用户的管理类

我的用户实体和媒体包字段

吸气剂和沉降剂

public function getUserCollection(): ?\App\Application\Sonata\MediaBundle\Entity\Media
{
    return $this->userCollection;
}

public function setUserCollection(?\App\Application\Sonata\MediaBundle\Entity\Media $userCollection): self
{
    $this->userCollection = $userCollection;

    return $this;
}

经过几周的搜索,谢谢你的回复

我有答案

首先,我需要将这一行添加到我的sonata_media.yaml中,以查看管理仪表板中的媒体库

db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr it is mandatory to choose one here
在configureFormFields中输入Admin后,只需将ModellistType::class添加到媒体字段

class OgaUsersAdmin extends AbstractAdmin
{
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper->add('userFirstname', TextType::class)
                   ->add('userImage', ModelListType::class);
    }

希望能有帮助

欢迎来到SO。本网站针对的是编程问题,而不是软件安装。在linux或服务器管理站点上可能有更好的luch。此外,您还希望避免放置指向图像的链接,如果这些链接在某个时候被删除,那么对于有相同问题的人来说,该问题将变得毫无用处。感谢您的评论,这不是安装,是指php框架,以及插件/包的配置。我试着解释一下,没有图片链接。但是你甚至没有给我们看一些代码,所以@Nic3500的反对是合法的。你试过相应的教程吗?对不起,你是对的,我已经添加了代码,是的,我试过相应的教程,一切都很好,但模板不是预期的,谢谢你的反馈。
db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr it is mandatory to choose one here
class OgaUsersAdmin extends AbstractAdmin
{
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper->add('userFirstname', TextType::class)
                   ->add('userImage', ModelListType::class);
    }