我正在调用用PHP编写的SOAP WS方法,该方法只需要调用一次,第一次调用它会在数据库中创建一个记录,该记录会从WS引发错误消息,以防再次调用
当我调用服务时出现问题,因为它总是采用条件的 else 路径,即使是第一次调用,查看执行流程,我看到当 $this->createRequest($params(; 它总是创建记录并将$model值更改为不为空抛出错误,因为它不是第一次调用
我的代码:
public function wsMethod(){
$model = Certificate::model()->find('codeValidate = :code',[':code' => $params->codeValidate]);
if(!is_null($model)){
throw new SoapFault(self::ERROR_VAL_3['code'], self::ERROR_VAL_3['message']);
}else{
$this->createRequest($params);
return ['code' => self::SUCCESS_VAL_1['code'], 'message' => self::SUCCESS_VAL_1['message']];
}
}```
请按以下方式更改您的代码:
public function wsMethod(){
$model = Certificate::model()->find('codeValidate = :code',[':code' => $params->codeValidate]);
if($model){
$this->createRequest($params);
return ['code' => self::SUCCESS_VAL_1['code'], 'message' => self::SUCCESS_VAL_1['message']];
}else{
throw new SoapFault(self::ERROR_VAL_3['code'], self::ERROR_VAL_3['message']);
}
}