首页 > 解决方案 > 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']];
}
}```

标签: phpweb-servicessoapyiiyii1.x

解决方案


请以这种方式更改您的代码:

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']);
  }
}

推荐阅读