gpt4 book ai didi

json - 使用 symfony 形式编辑 json_array 字段

转载 作者:行者123 更新时间:2023-12-02 02:49:21 24 4
gpt4 key购买 nike

为了编辑实体的 json_array symfony 字段类型,我尝试将其转换为表单中带有文本区域的可编辑字符串。

我创建了一个 DataTransformer 来进行转换 JSONString <-> 数组:

/**
* Transform an array to a JSON string
*/
public function transform($array)
{
return json_encode($array);
}

/**
* Transform a JSON string to an array
*/
public function reverseTransform($string)
{
return json_decode($string, true);
}

当我使用表单生成器创建表单时,我可以将数组转换为字符串,如下所示:

$builder->add($builder->create('info', 'textarea')->addModelTransformer(new ArrayToJSONStringTransformer()))

但是当我提交表单时,Symfony 正在创建一个新实体,并且该字段将转换为空数组。

我该怎么办?

最佳答案

您在文本区域中输入的文本可能不是有效的 JSON。尝试将文本复制到此工具中以验证语法:http://jsonlint.com/

我强烈建议您将一些验证集成到变压器中:

    public function reverseTransform($string)
{
$modelData = json_decode($string, true);
if ($modelData == null) {
throw new TransformationFailedException('String is not a valid JSON.');
}

return $modelData;
}

关于json - 使用 symfony 形式编辑 json_array 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23703572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com