PHP:在SOAP中返回一个对象数组

时间:2012-05-30 15:44:41

标签: php web-services soap wsdl nusoap

我已经检查并尝试过StackOverflow上的其他解决方案,但它对我没什么帮助,所以我决定再次问它。

我正在尝试创建一个SOAP服务器,打印生成的WSDL。但是除了array之外,一切都有效。无论我做了什么,我都无法让服务器返回products列表。可能的原因是什么?

这是我的函数代码:

function getProducts() {
    $productList = array();
for($i=0;$i<5;$i++) {
        array_push($productList, array(
            "pName" => "Hello",
            "pBrand" =>"World"
        ));
    }
    return $productList;           
}

这是复杂类型定义和函数寄存器;

$server->wsdl->addComplexType(
    'product',
    'complexType',
    'struct',
    'all',
    '',
    array(
        'pName' => array('name' => 'pName', 'type' => 'xsd:string'),
        'pBrand' => array('name' => 'pBrand', 'type' => 'xsd:string'))
);

$server->wsdl->addComplexType(
    'productList',
    'complexType',
    'array',
    '',
    'SOAP-ENC:Array',
    array(),
    array(
        array('ref' => 'SOAP-ENC:arrayType', 
              'wsdl:arrayType' => 'tns:product[]')
    ),
    'tns:product'
);
$server->register('getProducts',
                      array(),
                      array('productListResult' => 'tns:productList'),
                      'urn:QRWebService',
                      'urn:QRWebService#getProducts',
                      'rpc',
                      'encoded'
                      );

0 个答案:

没有答案