PHP SOAP - передача параметров с тем же именем

Я вызываю API, используя php и SOAP. некоторые части запроса похожи на:

<fin:Customer>
 <fin1:Address>
 <fin1:City>City</fin1:City>
 <fin1:Country>CA</fin1:Country>
 </fin1:Address>
<fin:Customer>   

Что легко сделать с массивами:

'Customer' => array(
                'Address' => array (
                'City' => $City,
                'Country' => $Country,
                ),

Но моя задача заключается в этой части:

<fin:Criterions>
 <fin:Criterion name = "VALX">17</fin:Criterion>
 <fin:Criterion name = "VALOP">1</fin:Criterion>
 <fin:Criterion name = "VALLP">10</fin:Criterion>
 <fin:Criterion name = "TMS">3</fin:Criterion>

Потому что все теги имеют одинаковое имя, а также у них есть параметр имени и значение. Как я могу передать это в SOAP API? Можно ли использовать массивы?

Заранее спасибо!

Пожалуйста, переместите свое решение к собственному ответу.

Cœur 30.04.2018 13:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
63
2

Ответы 2

Самый простой способ создать запрос, отправить его и обработать ответ - использовать генератор WSDL для PHP, поскольку он обычно генерирует каждый класс для каждого параметра, который вам нужно отправить (в дополнение к объектам ответа и классам операций)

Зная это, вы сможете легко увидеть, как передавать эти «дублированные» теги, поскольку это, безусловно, массив объектов, который вы должны передать,

Попробуйте проект PackageGenerator, который должен работать нормально,

Решение:

'Criterions' => array(
           'Criterion' => array(
                            array('name'=> 'VALX' , '_'=> '17' ), 
                            array('name'=> 'VALOP' , '_'=> '1' ),  
                            array('name'=> 'VALLP' , '_'=> '10' ),      
                            array('name'=> 'TMS' , '_'=> '3' )
                     ));

Обязательно используйте подчеркивание ('_'), если другие значения (например, val, value и т. д.) Не работают.

Может сэкономить время и силы.

Другие вопросы по теме