将对象数组作为参数传递给 SOAP 函数和 php-wsdl

Pass array of objects as param to SOAP function and php-wsdl

我正在尝试使用读取对象数组作为参数的函数来设置 SOAP 服务器。我正在使用 php-wsdl 生成 WSDL。这是我的方法:

/**
 * TStanMag
 * 
 *
 * @pw_set nillable=false The next element can't be NULL
 * @pw_element string $kodTowaru Kod towaru
 * @pw_set nillable=false The next element can't be NULL
 * @pw_element float $ilosc Dostępna ilość
 * @pw_complex TStanMag Pozycja stanu magazynowego
 */
class TStanMag {
    public $kodTowaru;
    public $ilosc;
};

...

/**
 * Aktualizacja stanów magazynowych
 * 
 * @param string $key1 Klucz 1
 * @param string $key2 Klucz 2
 * @param TStanMag[] $stany Tabela stanów magazynowych
 * @param int $store_id
 * @return TResult[] Response
 */
public function AktualizujStanyMagazynowe($key1, $key2, $stany, $store_id = 0) {
...
}

但在 WSDL 中我看到的是这种类型而不是类型数组:

<wsdl:part name="stany" type="tns:TStanMag[]">
<s:documentation>Tabela stanów magazynowych</s:documentation>
</wsdl:part>

也在 SoapUI 中收到警告

Thu Mar 19 21:04:38 CET 2015:WARN:Failed to find type [{http://localhost/symsync/}TStanMag[]]

我该如何解决这个问题?

同时我解决了这个问题。下面的工作代码。

/**
 * TStanMag
 * 
 *
 * @pw_set nillable=false The next element can't be NULL
 * @pw_element string $kodTowaru Kod towaru
 * @pw_set nillable=false The next element can't be NULL
 * @pw_element float $ilosc Dostępna ilość
 * @pw_complex TStanMag Pozycja stanu magazynowego
 */
class TStanMag {
    public $kodTowaru;
    public $ilosc;
};

/**
 * TStanMagArray
 * 
 *
 * @pw_element TStanMag $TStanMag Kod towaru
 * @pw_complex TStanMagArray Tablica pozycji stanu magazynowego
 */
class TStanMagArray {
    public $TStanMag;
};

...

/**
     * Aktualizacja stanów magazynowych
     * 
     * @param string $key1 Klucz 1
     * @param string $key2 Klucz 2
     * @param TStanMagArray $stany Tabela stanów magazynowych
     * @param int $store_id
     * @return TResultArray Response
     */
    public function AktualizujStanyMagazynowe($key1, $key2, $stany, $store_id = 0) {