我在将JSON对象存储到数据库中时遇到问题。我尝试了其他类型的字段类型,但没有成功的结果。
我要保存的数据是:
{
id: 1,name: 'test',enabled: false,configration: {
fid: 1,fid2: 2,fid3: 3
}
}
问题出在配置字段上。借助于json_decode函数,JSON对象作为数组被接收:
$data = json_decode($request->getcontent(),true);
配置字段:
/**
* @ORM\Column(type="array")
*/
private $configuration = [];
如上所述,我尝试了其他选项,例如:
array(我从array开始)-收到错误:“此表单不应包含额外的字段”。然后,我在此字段选项中将“ allow_extra_field”添加为true,但这导致将空对象数据保存在DB中。
json-收到错误“此值无效。”。
我又做了一次测试。 这段代码会产生错误(当实体类型设置为数组时):
$data['configuration'] = array(1);
$form->submit($data);
而这一点没有(当实体类型设置为数组时):
$data['configuration'] = array();
$form->submit($data);
为什么?
我不知道存储JSON对象的最佳选择是什么,但是我觉得我应该使用数组类型。但是我不知道为什么会出错。