質問

を使用してい PHP5.2.10 いを消費しwebserviceを返す 複雑なデータ種類 を使用 標準のSOAPの拡張.

問題は、SoapClientは移植物であるネストした他のオブジェ/オブジェクトの配列.簡単に例を取得しま呼び出しgetUtente方法を指定する"my_unique_id"としてのパラメータ:

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説明:

<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>

私が見つかりませんの経験はこの問題です。特にこの このコメント のPHPの公式文書 この入力フォーラム に異なる二つのアイデアをどのように行うかの問題がっていないのにしていることができたので他の アイデア:私のように完全に理解し、ロジックの例です。

皆さまも、誰でも行ガイドこの:一部のコードを他のwebservice温かい歓迎を受け、私は主に後は本当に理解し、問題の論理のソリューション提案の魚レーンではなく、お魚を!).:)

役に立ちましたか?

解決

旧質問、回答なし。私は最近、問題を説明し、解決策を提供し、このポスト、につまずい:<のhref =「http://leifmadsen.wordpress.com/2009/08/04/consuming-soap-complextype-webservice-with-php/」 rel = "nofollowを"> PHP のでSOAPのcomplexTypeのWebサービスを消費ます。

他のヒント

ここに私の即時の思考があり、申し訳ありません、これは正しい答えではない、ただいくつかのアイデア...

まず、あなたはSOAPサーバーに送信されたSOAP要求(エンベロープ)を見てみましたか?それが動作するはずのようにそれが見えますか?それは間違って起こっているどこに見ることができますか?あなただけのすべてのエラーバック、のSOAPFault、または間違ったデータ、または何も取得していますか?

第二に、あなたはSoapParamクラスを使用してみましたか?

最後に、私はあなたがこの権利をやっていると確信しているが、私は、あなたが構築しているオブジェクトは、ユーザー名と並んでfieldOneとfieldTwoすべての側面を持っていることが、あなたのWSDLショーがfieldOneとfieldTwoがクラスClienteの一部であることに気付きます

:ユーザ名は内部utilizzatore配列のでなければなりませんしながら、それをもっとすべきではない、(これはあなたの例に表示されません)
stdClass Object
(
    [Cliente] => stdClass Object
        (
            [fieldOne] => ...
            [fieldTwo] => ...
            [utilizzatore] => stdClass Object
                ( // This is EMPTY instead of containing a series of userName's
                )

        )

)

のSoapClientクラスは、非常に私はより良いあなたを助けるかもしれないアイデアを提供することで、それを自分自身を理解したいと考えているのでそう、批判としてのいずれかを取ることはありません。

、に私のためにイライラさせられます

マック、あなたの迅速な対応に感謝たくさん。私は..私はこの先に見ていなかったに下落何を見て。したがってシェア<のhref = "http://bugs.php.net/search.php?cmd=display&status=All&search_for=extension%20base&php_os=&php_os_not=0&boolean=1&author_email=&bug_age=0&by=&order_by=php_version&direction=DESC&phpver=&limitにしたいです= 10&割り当て=&bug_type%5B%5D = SOAP%が「REL = "nofollowをnoreferrer">このに20related。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top