修改 Sonata Media Bundle 时预览列消失
Preview column disappears when modifying Sonata Media Bundle
我正在修改 Sonata Media Bundle 的媒体管理屏幕以显示一个新字段。使用 Easy Extends 工具扩展包后,我创建了一个非常小的 class 来执行此操作:
namespace App\Application\Sonata\MediaBundle\Admin\ORM;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\MediaBundle\Admin\ORM\MediaAdmin as BaseMediaAdmin;
class MediaAdmin extends BaseMediaAdmin
{
/**
* {@inheritdoc}
*/
protected function configureFormFields(FormMapper $formMapper)
{
parent::configureFormFields($formMapper);
$formMapper
->add(
'language',
null,
[]
)
->end();
}
}
... 我将其添加到我的 services.yaml
文件中:
sonata.media.admin.media:
class: App\Application\Sonata\MediaBundle\Admin\ORM\MediaAdmin
arguments:
- ''
- '%sonata.media.admin.media.entity%'
- '%sonata.media.admin.media.controller%'
- '@sonata.media.pool'
- '@sonata.media.manager.category'
tags:
- { name: sonata.admin, manager_type: orm, group: admin, label: Seiten }
public: true
calls:
- [ setModelManager, ["@sonata.media.admin.media.manager"] ]
- [ setTranslationDomain, ["%sonata.media.admin.media.translation_domain%"] ]
- [ setTemplates, [ inner_list_row : "@@SonataMedia/MediaAdmin/inner_row_media.html.twig", outer_list_rows_mosaic : "@@SonataMedia/MediaAdmin/list_outer_rows_mosaic.html.twig", base_list_field : "@@SonataAdmin/CRUD/base_list_flat_field.html.twig", list : "@@SonataMedia/MediaAdmin/list.html.twig", edit : "@@SonataMedia/MediaAdmin/edit.html.twig" ] ]
当新字段(“语言”)加载到我的 CMS 管理屏幕上时,我发现我现在只有一半的字段! “预览”选项卡完全丢失。 “媒体”选项卡中的字段存在,但该选项卡现在标记为“页面”。
关于这里可能发生的事情有什么想法吗?
事实证明,我不必经历重新声明具有所有依赖项的服务的整个巴洛克式舞蹈。相反,我在 services.yaml
中需要做的就是创建一个指向我的自定义 class:
的新参数键
parameters:
locale: 'de'
...
sonata.media.admin.media.class: 'App\Application\Sonata\MediaBundle\Admin\ORM\MediaAdmin'
之后,一切正常。糟糕!
我正在修改 Sonata Media Bundle 的媒体管理屏幕以显示一个新字段。使用 Easy Extends 工具扩展包后,我创建了一个非常小的 class 来执行此操作:
namespace App\Application\Sonata\MediaBundle\Admin\ORM;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\MediaBundle\Admin\ORM\MediaAdmin as BaseMediaAdmin;
class MediaAdmin extends BaseMediaAdmin
{
/**
* {@inheritdoc}
*/
protected function configureFormFields(FormMapper $formMapper)
{
parent::configureFormFields($formMapper);
$formMapper
->add(
'language',
null,
[]
)
->end();
}
}
... 我将其添加到我的 services.yaml
文件中:
sonata.media.admin.media:
class: App\Application\Sonata\MediaBundle\Admin\ORM\MediaAdmin
arguments:
- ''
- '%sonata.media.admin.media.entity%'
- '%sonata.media.admin.media.controller%'
- '@sonata.media.pool'
- '@sonata.media.manager.category'
tags:
- { name: sonata.admin, manager_type: orm, group: admin, label: Seiten }
public: true
calls:
- [ setModelManager, ["@sonata.media.admin.media.manager"] ]
- [ setTranslationDomain, ["%sonata.media.admin.media.translation_domain%"] ]
- [ setTemplates, [ inner_list_row : "@@SonataMedia/MediaAdmin/inner_row_media.html.twig", outer_list_rows_mosaic : "@@SonataMedia/MediaAdmin/list_outer_rows_mosaic.html.twig", base_list_field : "@@SonataAdmin/CRUD/base_list_flat_field.html.twig", list : "@@SonataMedia/MediaAdmin/list.html.twig", edit : "@@SonataMedia/MediaAdmin/edit.html.twig" ] ]
当新字段(“语言”)加载到我的 CMS 管理屏幕上时,我发现我现在只有一半的字段! “预览”选项卡完全丢失。 “媒体”选项卡中的字段存在,但该选项卡现在标记为“页面”。
关于这里可能发生的事情有什么想法吗?
事实证明,我不必经历重新声明具有所有依赖项的服务的整个巴洛克式舞蹈。相反,我在 services.yaml
中需要做的就是创建一个指向我的自定义 class:
parameters:
locale: 'de'
...
sonata.media.admin.media.class: 'App\Application\Sonata\MediaBundle\Admin\ORM\MediaAdmin'
之后,一切正常。糟糕!