我正在修改网页中的实体(Symfony 没有什么不寻常的:))。我目前有一个应该修改的实体。我使用Jeditable进行该版本,而不是在版本之后立即修改实体,而是将修改后的元素存储在 json 中,当用户确认他的修改时(通过模态对话框确认操作),我将该 JSON 发送到我的控制器。
那就是事情变得更糟的时候^^
我检查了我的 json 数组是否包含正确的信息。但是当我在控制器中拦截请求时,它似乎不包含我想要的内容。这是我的控制器:
public function postorganisationAction(){
$modifFields = array();
$content = $this->get("request")->getContent();
$this->get('logger')->info('request123456 ');
if (!empty($content))
{
$modifFields = json_decode($content, true);
$repository = $this->getDoctrine()
->getEntityManager()
->getRepository('MyBundle:Organisation');
$organisation = $repository->findById($modifFields["id"]);
$organisation->setFromArray($modifFields);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($organisation);
$em->flush();
}
}
setFromArray 函数获取一个包含元素的数组,例如"name" => "newname"
.
当我尝试记录请求、内容或$modifFields["id"]
(如我所说,我检查 JSON 中的 id 在 jquery 中是否正确)时,日志不会出现。
有人知道我做错了什么吗?
编辑:
经过一些修改(感谢 ManseUK),我能够:
- 让 jQuery 函数发送 JSON 字符串而不是数组(JSON.stringify(oModifFields);
)
- 解决问题: 我有一个转换错误$organisation
,然后我变成了一个对象所需类型
就是这样^^