возврат массива nest из веб-сервиса php с использованием nusoap lib - PullRequest
0 голосов
/ 25 августа 2011

Я хочу вернуть вложенный массив из веб-сервиса в php, до меня это делалось следующим образом

$ordArr = array("orderid"=>$orderId,"orderdate"=>$orderdate,"ordertype"=>$ordertype);

$userArr = array("userid"=>$userId,"name"=>$name,"address"=>$address);

Я могу определить комплексный тип для одного массива и вернуть один массив, используя этот способ

$server->wsdl->addComplexType(
 'User',
 'complexType',
 'struct',
 'all',
 '',
      array(
       'userId' => array('name' => 'userId',
           'type' => 'xsd:int'),
       'name' => array('name' => 'name',
           'type' => 'xsd:string'),
       'address' => array('name' => 'address',
           'type' => 'xsd:string')
      )
);

но как определить тип полного для вложенного массива, например

$userArr = array("userid"=>$userId,"name"=>$name,"address"=>$address,"order"=>$ordArr);

Я немного запутался в определении типа в сложном типе для массива

как для типа набора строккак 'xsd: string', но для типа массива =?

1 Ответ

0 голосов
/ 29 августа 2011

для вложенного массива, используемого в типе addcomplex с помощью nusoap lib для создания веб-службы в php.

$ordArr = array("orderid"=>$orderId,"orderdate"=>$orderdate,"ordertype"=>$ordertype);

$userArr = array("userid"=>$userId,"name"=>$name,"address"=>$address);

определить первый сложный тип для вложенного массива, который вы хотите добавить в основной или внешний массив.

$server->wsdl->addComplexType(
 'Order',
 'complexType',
 'struct',
 'all',
 '',
      array(
       'orderid' => array('name' => 'orderid',
           'type' => 'xsd:int'),
       'orderdate' => array('name' => 'orderdate',
           'type' => 'xsd:string'),
       'ordertype' => array('name' => 'ordertype',
           'type' => 'xsd:string'),
      )
);

Теперь добавьте этот сложный тип в сложный тип основного массива в массив, чтобы определить тип массива. При создании сложного типа в виде структуры / массива этот тип использовался для определения этого типа объекта в массиве

теперь определите комплексный тип пользователя для

$userArr = array("userid"=>$userId,"name"=>$name,"address"=>$address,"order"=>$ordArr);

$server->wsdl->addComplexType(
 'User',
 'complexType',
 'struct',
 'all',
 '',
      array(
       'userId' => array('name' => 'userId',
           'type' => 'xsd:int'),
       'name' => array('name' => 'name',
           'type' => 'xsd:string'),
       'address' => array('name' => 'address',
           'type' => 'xsd:string'),
       'order' => array('name' => 'order',
           'type' => 'tns:Order'),
      )
);

нужны подробности см. Этот урок

учебник для вложенного массива

...