我目前正在开发一个Symfony2项目,用户可以通过可疑的跨度对网页的某些部分进行评论。我现在想要将这些在JSON对象数组中组装的注释保存到数据库中,并引用该页面和用户ID。这就是我被困住的地方。
将JavaScript代码中的数据放入特定数据库表需要哪些步骤?
我已经在Entity文件夹中创建了一个Comment类。并基于this 回答我在JavaScript中的 saveComment()中添加了以下代码:
$.post('saveComments.php', {
page_id : getPageId(),
user_id : getUserId(),
comments : getJSONcomments(),
});
下一步是什么......?
好的,让我们创建一个saveComments.php ...但是在捆绑中的哪个位置?或者这可以通过控制器来完成?如果是这样,我需要如何以及在$ .post(...)调用中替换url(“saveComments.php”)?
答案 0 :(得分:0)
不要发布到PHP页面,因为这会打破Symfony 2模型。而是发布到路线,如save/comment
或沿着这些路线。
配置路由以指向控制器中的操作。
实现控制器和操作,使其不接受任何参数。在操作中,使用通常的PHP方式解压缩已发布的数据(因为您没有表单将数据绑定到):
$_POST
只是为了让它正常运行,echo
var_dump()
到控制台,看看你得到了什么。这是关于如何write to the console。
使用serializer解码JSON数据。
解码后的数据将是一个简单的关联PHP数组。解释您收到的数据并采取相应行动(不要忘记处理安全性以及所有这些 - 您不想通过AJAX打开安全漏洞)。
最好的是,您检查您选择的路由是否属于您需要的安全层,并且可能已在Symfony 2应用程序中配置。这样您就不需要在操作中手动处理安全性。
完成此操作后,请返回代码为200 OK
的{{3}}。
return new Response('', Response::HTTP_OK); // no response text at all
如果有500类 HTTP服务器错误的任何错误回复:
return new Response('', Response::HTTP_INTERNAL_SERVER_ERROR); // 500
另外,请勿忘记使用.error()
方法处理客户端错误。