Bonjour,

Je n'arrive pas à envoyer un tableau de classe via SOAP en PHP, voici la déclaration WSDL, qui ne m'appartient pas, et que je ne peux absolument pas modifier.


voici ma définition php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
		$params = new stdClass();
		$params->loginInfo = new stdClass();
		$params->loginInfo->UserName = 	'yonia';
		$params->loginInfo->Password = 	'yonia3';
		$params->loginInfo->LanguageCode = 	'en';
		$params->reservation = new stdClass();
		$params->reservation->EmailRecipient2 = 'yonia@yopmail.com';
		$params->reservation->EmailRecipient3 = 'yonia2@yopmail.com';
		$params->reservation->FirstName = 'Yoni'
		foreach($extras as $id=>$extra)
		{
			$params->Extras[$id]= new stdClass();
			$params->Extras[$id]->SelectedExtra = new stdClass();
			$params->Extras[$id]->ExtensionData = new stdClass();
			$params->Extras[$id]->SelectedExtra->Amount = 1;
			$params->Extras[$id]->SelectedExtra->ID = $extra;
		}
et voici ce que SOAP me génère.

Comment faire pour que je puisse envoyer de manière correcte les infos décrites dans la classe Extra

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/">
  <SOAP-ENV:Body>
    <ns1:CreateReservation>
      <ns1:loginInfo>
        <ns1:UserName>monusername</ns1:UserName>
        <ns1:Password>monpass</ns1:Password>
        <ns1:LanguageCode>en</ns1:LanguageCode>
      </ns1:loginInfo>
      <ns1:reservation>
        <ns1:EmailRecipient2>yonia@yopmail.com</ns1:EmailRecipient2>
        <ns1:EmailRecipient3>yonia2@yopmail.com</ns1:EmailRecipient3>
        <ns1:FirstName>Yoni</ns1:FirstName>
      </ns1:reservation>
    </ns1:CreateReservation>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Comment dois-je générer ma classe Extras pour qu'elle sois pris en compte par ma définition WSDL ?

Merci d'avance pour votre aide

Cordialement,