2012-08-08 24 views
7

Necesito crear una solicitud SOAP que se parece a esto:SOAP ERROR: Codificación: El objeto no tiene ninguna propiedad

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

La operación espera que esto:

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

He intentado el siguiente, pero sigue golpeando PHP Fatal error: SOAP-ERROR: Encoding: object has no 'start' property

Sé que el objeto token se puede crear así, como lo he usado para otra operación:

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

Sin embargo, hacer algo similar para el parámetro 'inicio' está fallando con el mensaje de error fatal. Aquí es parte del código:

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

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

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

Soy incapaz de imprimir la solicitud completa usando jabón $soap->__getLastRequest() porque está devolviendo el error fatal antes de emitir la petición. Del mismo modo, no puedo usar var_dump() en el $resp porque se muere antes de ejecutar esa línea. ¿Cómo puedo saber lo que realmente se envía? Si lo sé, entonces puedo depurar esto más fácilmente.

Gracias, ns

Respuesta

10

intento con algo así:

$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);  
Cuestiones relacionadas