使用Sonata Admin处理Doctrine json_array字段



是否有任何"内置"的方式来使用Sonata Admin管理Doctrine json_array字段?

我在Symfony/Sonata文档(或代码)中找不到任何有用的文档(或相关代码),但我希望我错过了一些东西!

理想情况下,我希望看到序列化的键/值对,并找到一种方法来删除它们中的任何一个并添加一些新的键/值对,但我想我将不得不自己写出来......

您可以像处理任何数组一样使用json_array,因此您可以使用集合类型或奏鸣曲类型集合。我喜欢奏鸣曲类型为你处理添加/删除JavaScript。

在我的实体中,我在"配置"列上使用"json"类型

/**
 * @var integer
 *
 * @ORMColumn(name="config", type="json", nullable=false)
 */
protected $config;

您可以使用基本的 DataTransformer 将值从 JSON 转换为字符串,并将其显示为表单中的文本

$formMapper->add('config', 'text', [
    'required' => false,
])        
$formMapper->get('config')->addModelTransformer(new CallbackTransformer(
    function ($tagsAsArray) {
        //object stdclass json, need to be transform as string for render form
        return json_encode($tagsAsArray);
    },
    function ($tagsAsString) { 
        //string, need to be transform as stdClass for json type for persist in DB
        return json_decode($tagsAsString);
    }
));

相关内容

  • 没有找到相关文章

最新更新