2013-02-28 112 views
2

對不起,也許是一件非常簡單的事情,但是我從幾天起就無法工作!如何通過PHP傳遞數組到PHP肥皂服務器?

這是我的WSDL的一部分:

<xsd:complexType name="PERSON"> 
<xsd:sequence> 
    <xsd:element name="ExterneID" minOccurs="0" type="xsd:int" /> 
    <xsd:element name="Email" type="xsd:string" /> 
    ... 
</xsd:sequence> 
</xsd:complexType> 

<message name="insertAdresse"> 
    <part name="BmLogin" type="xsd:string" /> 
    <part name="TS" type="xsd:int" /> 
    <part name="UT" type="xsd:string" /> 
    <part name="Person" type="typens:PERSON"/> 
</message> 

如何傳遞這個我SOAP服務器?我該如何解決那些問題?

我試了很多版本,但沒有什麼幫助!例如:

class c_adresse 
{ 
    public $ExterneID; 
    public $Email; 

    public function __construct($ExterneID,$Email) 
    { 
     $this->ExterneID = $ExterneID; 
     $this->Email = $Email; 
    } 
} 

$no1 = array(); 
$no1[] = new c_adresse(33,"[email protected]"); 

所以$ NO1的樣子:

array(1) { 
[0]=> 
    object(c_adresse)#2 (2) { 
    ["ExterneID"]=> 
    int(33) 
    ["Email"]=> 
    string(15) "[email protected]" 
    } 
} 

電話:

$response = $soap_client->insertAdresse($login,$ts,$token,$no1); 

錯誤消息:

PHP Fatal error: SOAP-ERROR: Encoding: object hasn't 'Email' property in /home/peter/Desktop/soap.php on line 41 
PHP Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object hasn't 'Email' property in /home/peter/Desktop/soap.php:41 

如何設計對象/數組( ?)傳遞給肥皂服務器?

在服務器上,我無法尋址$ daten。有時,當我玩弄參數的順序和樣式時,我會以某種方式工作,並且只有在「消息」部分中不混合string,int和數組(complexType [PERSON])的情況下。 但我不能滿足$回到名單Daten或$ BmLogin是空的,等等...

function insertAdresse($BmLogin,$TS,$UT,$daten) 

沒關係,我已經找到了解決方案!

我改變了這個:

<xsd:element name="PERSON" type="PersonType"/> 
<xsd:complexType name="PersonType"> 

那麼這...

$response = $soap_client->insertAdresse($login,$ts,$token,array("ExterneID"=>22,"Email"=>"[email protected]")); 

工作正常!

+0

顯示您正在進行的實際SOAP調用。 – 2013-02-28 15:34:09

+0

感謝傑克的幫助,我認爲這是完成了...(見上文)我會做更多的檢查... – Peter 2013-02-28 15:50:40

+1

發佈一個答案爲清晰。 – SparKot 2013-02-28 15:54:40

回答

0

好的,我找到了解決方案!

這是在WSDL丟失:

<xsd:element name="PERSON" type="typens:PersonType"/> 
<xsd:complexType name="PersonType"> 

那麼這...

$response = $soap_client->insertAdresse($login,$ts,$token,array("ExterneID"=>22,"Email"=>"[email protected]")); 

工作正常!