mandarinmedien/mmmmediabundle

YAMB -> 另一个媒体包

安装: 183

依赖者: 1

建议者: 0

安全: 0

星标: 0

关注者: 4

分支: 1

公开问题: 1

类型:symfony-bundle

3.0.0 2022-04-14 06:33 UTC

README

追加到 app/AppKernel.php

...
    public function registerBundles()
    {
        $bundles = array(
            ...
            new MandarinMedien\MMMediaBundle\MMMediaBundle(),
            ...
            );
    ....
    }
...

追加到 app/config/config.yml

...
imports:
    - { resource: '@MMMediaBundle/Resources/config/config.yml' }
...

追加到 App/config/routing.yml

...
mm_media:
    resource: "@MMMediaBundle/Resources/config/routing.yml"
    prefix:   /mmmedia
...

创建 web/media 文件夹以存储图像

...
shell: mkdir PROJECT_ROOT/web/media
...

在您的实体中使用 MMMediaBundle

为了使媒体可排序,您需要使用此包的 MediaSortable 实体。对于媒体集合,使用单向多对多关联;对于单个媒体,使用单向一对一关联。为了防止数据库中出现垃圾数据,请确保设置 orphanRemoval 标志。

例如,单个媒体的 yaml 配置

...
    oneToOne:
        titleImage:
            targetEntity: MandarinMedien\MMMediaBundle\Entity\MediaSortable
            cascade:
              - persist
              - remove
...

例如,媒体集合的 yaml 配置

...
    manyToMany:
        medias:
            targetEntity: MandarinMedien\MMMediaBundle\Entity\MediaSortable
            orderBy: { 'position': 'ASC' }
            joinColumn:
                name: media_sortable_id
                referencedColumnName: id
            cascade:
                - persist
                - remove
            orphanRemoval: true
...

将所有必要的资产添加到您的布局中

为了使 MMMediaBundle-UploadWidget 正常工作,您需要添加必要的 CSS 和 JS 文件。您可以复制下面的部分,或者将 @mmmedia_assets_css 和 @mmmedia_assets_js 添加到您的资产调用中。

Twig 示例

...
    {% stylesheets '@mmmedia_assets_css' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}

    {% javascripts '@mmmedia_assets_js' %}
    <script src="{{ asset_url }}"></script>
    {% endjavascripts %}
...

表单类型选项

...

    $builder          
        ->add('medias', 'mmmedia_upload_collection', array(
            
            // optional: configure allowed filetypes by file-extensions 
            'allowed_filetypes' => array( 
                '.jpg', '.png', '.gif'
            )
            
        ));

...