奏鸣曲管理员添加richhtml编辑器以阻止内容

Posted

技术标签:

【中文标题】奏鸣曲管理员添加richhtml编辑器以阻止内容【英文标题】:sonata admin add richhtml editor to block content 【发布时间】:2014-12-20 10:39:43 【问题描述】:

我想将 ckeditor 添加到块管理中的内容字段。 这是我到目前为止所做的:

    将 raw_content 和 content_formatter 属性添加到我的块中

    将 TextBlockService 中的 buildEditForm 修改为:

    public function buildEditForm(FormMapper $formMapper, BlockInterface $block)
    
    $formMapper->add('settings', 'sonata_type_immutable_array', array(
        'keys' => array(
            array('content', 'sonata_formatter_type', array(
                'event_dispatcher' => $formMapper->getformBuilder()->getEventDispatcher(),
                'format_field'   => ['content_formatter'],
                'source_field'   => ['raw_content'],
                'source_field_options'      => array(
                    'attr' => array('class' => 'span10', 'rows' => 10)
                ),
                'listener'       => true,
                'target_field'   => ['content']
            )),
        )
    ));
    
    

它工作得很好,允许我从编辑器列表中选择“richhtml”,但是当我尝试保存块时它会抛出一个错误:

Expected argument of type "string or Symfony\Component\PropertyAccess\PropertyPathInterface", "NULL" given 

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

它应该是这样工作的:

$formMapper->add('settings', 'ckeditor', array());

【讨论】:

以上是关于奏鸣曲管理员添加richhtml编辑器以阻止内容的主要内容,如果未能解决你的问题,请参考以下文章

奏鸣曲管理员列表可编辑与编辑/显示冲突

阻止 SonataAdmin / Symfony2 使用 sonata_type_admin 嵌入式管理员创建空对象

用户组的奏鸣曲验证不起作用

用 Behat 模拟添加元素奏鸣曲

编辑对象奏鸣曲管理包

奏鸣曲管理员 many_to_one 可编辑不起作用