我正在使用Zurmo并尝试使用REST API创建一个新帐户。我精确地遵循了这个文档:http://zurmo.org/wiki/rest-api-specification-accounts将所需参数作为json数组传递。
这是我的PHP代码:
公共职能actionCreateOrUpdate(){
$params=$_POST;
$modelClassName=$this->getModelName();
foreach ($params as $param)
{
if (!isset($param))
{
$message = Zurmo::t('ZurmoModule', 'Please provide data.');
throw new ApiException($message);
}
$r=$this->GetParam($param);
$res= array('status' => 'SUCCESS', 'data' => array($r));
print_r(json_encode($res,true));
}
}
function GetParam ($param){
$modelClassName=$this->getModelName();
if (isset($param['mobile_id']) && !$param['mobile_id']=='' &&!$param['mobile_id']==null)
{ $id=$param['mobile_id'];
$params=array();
foreach ($param as $k => $v) {
if(!($k=='mobile_id')) {
$params[$k] = $v;}
}
if ($params=null){$message = Zurmo::t('ZurmoModule', 'Please provide data.');
throw new ApiException($message);}
$tableName = $modelClassName::getTableName();
$beans = ZurmoRedBean::find($tableName, "mobile_id = '$id'");
if (count($beans) > 0)
{
$result = $this->processUpdate($id, $params);
}else{
$result = $this->processCreate($params,$id);
}
}
return $result;
}
的问题是,$ _ POST方法返回一个空数组。在调试时,我尝试使用print_r($ _ POST),它也返回一个空数组。我也尝试将参数作为纯文本传递并得到相同的结果。我试过$ _GET方法,它工作。我认为问题出在$ _POST方法中,也许我需要在我的.php文件中更改某些内容。请有任何想法吗?
您能显示请求吗?如果'$ _GET'正在工作,而不是'$ _POST',那么发送它时可能会缺少请求类型。 – BrainPicker
请求类型是REST。我也尝试使用HTTPRequester,但它给出了相同的结果:( – user3640056