将对象数组作为参数传递给 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) {
我正在尝试使用读取对象数组作为参数的函数来设置 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) {