是否有任何"内置"的方式来使用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);
}
));