I PHP 5.2.10 kullanıyorum ve ben complex data types kullanarak döndüren bir webcoder tüketmek çalışıyorum standard SOAP extension strong>.
Sorun SoapClient nesnelerin diğer nesneleri / diziye iç içe nesneleri doldurmak olmamasıdır. Bir parametre olarak "my_unique_id" belirterek, getUtente yöntemini çağırdığınızda ben ne olsun basitleştirilmiş bir örnektir:
stdClass Object
(
[getUtenteReturn] => stdClass Object
(
[userName] => my_unique_id
[fieldOne] => ...
[fieldTwo] => ...
[utilizzatore] => stdClass Object
( // This is EMPTY instead of containing a series of userName's
)
)
)
WDSL açıklamanın ilgili kısmı:
<element name="getUtenteResponse">
<complexType>
<sequence>
<element name="getUtenteReturn" type="tns1:Cliente"/>
</sequence>
</complexType>
</element>
...
<complexType name="Utilizzatore">
<sequence>
<element name="userName" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
...
<complexType name="Cliente">
<complexContent>
<extension base="tns1:Utilizzatore">
<sequence>
<element name="fieldOne" nillable="true" type="xsd:string"/>
<element name="fieldTwo" nillable="true" type="xsd:string"/>
<element name="utilizzatore" nillable="true" type="impl:ArrayOf_tns1_Utilizzatore"/>
</sequence>
</extension>
</complexContent>
</complexType>
Ben bu sorunla karşılaşan tek kişi ben ne buldum. Özellikle ben PHP resmi belgelerinde this comment bulundu ve this other forum entry sorunu yaklaşım konusunda iki farklı fikir vermek için, ama ben bu iki {[herhangi açmak mümkün olmamıştır (2)]} bir working solution: Ben tamamen Verilen örneklerde arkasındaki mantığı anlamak için değil gibi görünüyor.
Ben öncelikle sonra gerçekten sorun ve önerilen çözümlerin mantığını anlamak olduğunu ben ne başka bir webcoder bazı çalışan kod hoş olurdu, ama: ben herkes bu bana rehberlik eğer minnettar olacaktır (balık şeritli, değil balık!) . :)