Php PDO设置服务器响应代码?
我正在对我们使用的框架进行ajax查询。我无法设置服务器响应代码,除非在调用PDO execute方法的位置进行设置 该模式的工作原理如下: 运行一个ajax查询,将其发送到一个文件action.php,该文件验证输入。如果输入有效,我们调用业务逻辑(application.php)中的函数,然后调用底层PDO insert/save方法。如果我们得到了一个很好的保存,我们将在action.php函数中返回TRUE 在我的ajax调用中,我有一个.done()函数,它通过检查xhr.status来确认保存的发生。成功保存后,我想通过调用http_response_code(201);,将xhr.status设置为201;。如果我真的在PDO层中,在execute()方法之后这样做,这是可行的,但是我不能让它在其他任何地方工作。显然,这不是设置响应代码的正确位置 对不起,这个问题太抽象了。下面是一个代码不起作用的小示例:Php PDO设置服务器响应代码?,php,ajax,jquery,Php,Ajax,Jquery,我正在对我们使用的框架进行ajax查询。我无法设置服务器响应代码,除非在调用PDO execute方法的位置进行设置 该模式的工作原理如下: 运行一个ajax查询,将其发送到一个文件action.php,该文件验证输入。如果输入有效,我们调用业务逻辑(application.php)中的函数,然后调用底层PDO insert/save方法。如果我们得到了一个很好的保存,我们将在action.php函数中返回TRUE 在我的ajax调用中,我有一个.done()函数,它通过检查xhr.status
$resInfo = new ResInfo();
if($resInfo = saveResident()){
http_response_code(201);
}
return true;
此处未设置响应代码。相反,它是在saveResident()调用的PDO方法中设置的
还有人有过类似的问题吗
编辑:
我意识到saveResident()返回保存对象的副本,而不是布尔值,因此我需要将对它的调用与保存保存对象的调用分开:
if(saveResident()){
$resInfo = saveResident();
http_response_code(201);
}
如果你说:
- 它在
saveResident()中工作
成功运行saveResident()
- 而不是在if语句之后
我猜saveResident返回false、空数组或什么都没有<代码>$resInfo毕竟不被使用。为什么要使用赋值符号
=
$resInfo=saveResident()
而不是等号:==
不应该是$resInfo->saveResident()
?对不起,伙计们。有很多代码遗漏了,因为太多了,无法包含@Christian Bitoi,因为我实际上在那里调用函数,并希望$resInfo设置为其返回值。saveResident()是一个业务逻辑级别的方法,它调用ResInfo对象的setter,传入经过清理的$\u POST值,然后向下调用将对象属性写入相应数据库字段的PDO层。因此,您让我走上了正确的道路。saveResident()返回已保存对象的副本,而不是布尔值。我只需要将save调用和保存它的部分分开:$resInfo=newresinfo();if(saveResident()){$resInfo=saveResident();http_response_code(201);}