我正在对我们使用的框架进行ajax查询。我无法设置服务器响应代码,除非通过设置调用PDO执行方法的位置。
模式的工作原理如下:
运行ajax查询,发布到文件action.php,验证输入。如果输入有效,我们在业务逻辑(application.php)中调用一个函数,然后调用底层的PDO插入/保存方法。如果我们得到一个很好的保存,我们在action.php函数中返回TRUE。
在我的ajax调用中,我有一个.done()函数,通过检查xhr.status来确认保存。当我们成功保存时,我想通过调用http_response_code(201);将xhr.status设置为201。如果我在PDO层中实际执行此操作,就在execute()方法之后,但是我无法在其他任何地方使用它。显然,这不是设置响应代码的正确位置。
抱歉这个问题太抽象了。以下是一个无效的代码示例:
$resInfo = new ResInfo();
if($resInfo = saveResident()){
http_response_code(201);
}
return true;
此处未设置响应代码。相反,它在PDO方法中设置saveResident()调用。
其他人有过类似的问题吗?
编辑:
我意识到saveResident()返回保存对象的副本而不是布尔值,所以我需要将对它的调用与保存对象分开:
if(saveResident()){
$resInfo = saveResident();
http_response_code(201);
}
答案 0 :(得分:1)
如果你说:
saveResident()
saveResident()
成功运行。我猜想saveResident会返回false,一个空数组或者什么都没有。毕竟不使用$resInfo
。