php - Yii 1 查询值在插入值时更改,即使之前在 SOAP WS 上执行过查询
问题描述
我正在调用一个用 PHP 编写的 SOAP WS 方法,该方法只需要调用一次,第一次调用它会在数据库中创建一条记录,以防再次调用它时从 WS 抛出错误消息
问题发生在我调用服务时,因为它总是采用条件的 else 路径,即使是第一次调用,查看执行流程时我看到 $this->createRequest($params); 它总是创建记录并将 $model 值更改为 not null 抛出错误,因为它不是第一次调用
我的代码:
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']);
}
}
推荐阅读
- javascript - 我正在尝试使用 parseint 但它不起作用
- javascript - php post key是json字符串
- wso2 - 错误:WSO2 apim rest 试用中的内部服务器错误
- flutter - 我想检查两个文本字段是否不为空然后转到下一页
- c++ - 矩阵初始化不适用于更高的值
- python - sqlite IF 语句(用例?)
- javascript - 我的表格没有更新。预加载默认值 - 反应
- php - php 函数返回“警告:数组到字符串的转换”
- javascript - 如何在 Googlemap api 函数(初始中心)上传递 setState 的值?
- c++ - 在 C++ 中显示整周的最高和最低温度