2012-08-08 15 views
7

Ich brauche eine SOAP-Anforderung zu erstellen, die wie folgt aussieht:SOAP-ERROR: Encoding: Objekt hat keine Eigenschaft

<soapenv:Body> 
<getItemsForProject> 
    <token> 
     <user>?</user> 
     <password>?</password> 
    </token> 
    <projectId></projectId> 
    <start>0</start> 
    <count>0</count> 
</getItemsForProject> 
</soapenv:Body> 

Der Betrieb erwartet dies:

[209] => struct getItemsForProject { 
wsAuth token; 
long projectId; 
int start; 
int count; 
} 

Ich habe versucht, die folgenden aber keep shit PHP Fatal error: SOAP-ERROR: Encoding: object has no 'start' property

Ich weiß, dass das Token-Objekt kann so erstellt werden, wie ich es für einen anderen Vorgang verwendet habe:

$auth->token = new \stdClass; 
$auth->token->user = $username; 
$auth->token->password = $password; 

Allerdings ist etwas Ähnliches für den 'Start' Parameter mit der schwerwiegenden Fehlermeldung fehlgeschlagen. Hier ist ein Teil des Codes:

$opts = new \StdClass; 
$opts->projectId = 123; 
$opts->start = 0; 
$opts->count = 0; 

$resp = $soap->getItemsForProject($auth, $opts);  

echo $soap->__getLastRequest() ."\n"; 

Ich bin nicht in der Lage, die volle Seife Anfrage drucken $soap->__getLastRequest() verwenden, da sie den fatalen Fehler zurückkehrt, bevor die Anforderung ausgeben. Ebenso kann ich var_dump() auf dem $resp nicht verwenden, da es vor der Ausführung dieser Zeile stirbt. Wie kann ich sagen, was tatsächlich gesendet wird ?! Wenn ich das weiß, kann ich das leichter debuggen.

Danke, ns

Antwort

10

Versuchen Sie, mit so etwas wie das:

$myClass->token = new \stdClass; 
$myClass->token->user = $username; 
$myClass->token->password = $password; 

$myClass->projectId = 123; 
$myClass->start = 0; 
$myClass->count = 0; 


$resp = $soap->getItemsForProject($myClass);  
Verwandte Themen