@Alessandro2981

Как сгенерировать SOAP запрос на PHP с несколькими параметрами с одинаковым именем?

Мне нужно сгенерировать SOAP запрос такого вида, где статус параметр повторяется несколько раз с разным значением:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    	<soapenv:Header/> 
    	<soapenv:Body> 
    		<ns1:SomeRequest enddate="01-01-2018 00:00:00" authCode="exampleexample"> 
    			<ns1:status>STATUS1</ns1:status> 
    			<ns1:status>STATUS2</ns1:status> 
    		</ns1:SomeRequest> 
    	</soapenv:Body> 
</soapenv:Envelope>


Я пробую это реализовать так:

$this->client = new SoapClient($this->wsdlUrl, [
     'trace' => true,
     'exception' => true,
     'cache_wsdl' => WSDL_CACHE_NONE,
]);
    
$parameters = [
        'authCode' => 'exampleexample',
        'enddate' => '01-01-2018 00:00:00',
        'status' => ['STATUS1', 'STATUS2']
];
    
$response = $this->client->SomeSimpleMethod($parameters);


Получаю ошибку Array to string conversion.
Если я отправляю статус как строку, то все работает отлично:

$parameters = [
        'authCode' => 'exampleexample',
        'enddate' => '01-01-2018 00:00:00',
        'status' => 'STATUS1'
];
  • Вопрос задан
  • 510 просмотров
Пригласить эксперта
Ответы на вопрос 1
Max_Cohen
@Max_Cohen
Программист, который не программирует
Добрый день,

Скорее всего у вас получается отправить массив, но вот вывести его куда-то как "текст" не получится. Нужно массив перевести в строку. Можно воспользоватся родной функцией:
join(', ', $array);

Либо, вы вообще не можете отправить запрос с массивом?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы