PHP SOAP: передача одинаковых параметров с одинаковым именем

Я не могу заставить это работать. Я уже прочитал кучу об этом на форуме, но я просто не могу найти решение этого.

Я создал вызов SOAP, и он работает и т. д., Но когда я пытаюсь передать одни и те же параметры несколько раз, он просто перезаписывает себя, что логично.

Код должен выполняться только с объектами, поэтому я использовал stdClass ()

Пример кода ниже:

$relationCreate = new stdClass();

$relationCreate->credentials = new stdClass();
$relationCreate->credentials->ApiKey = ''; //Removed for security reasons.
$relationCreate->credentials->DatabaseId = ''; //Removed for security reasons.;
$relationCreate->credentials->UserId = ''; //Removed for security reasons.;

$relationCreate->parentRelationId = $company;
$relationCreate->relationEntityTypeId = "84a15869-5b88-49df-ad47-7b6f9648ae07";

//surname
$relationCreate->relationFieldValues = new stdClass();
$relationCreate->relationFieldValues->PvFieldValueData = new stdClass();
$relationCreate->relationFieldValues->PvFieldValueData->Id = "9d549512-dc8a-4774-84d1-27a349e8a8c7";
$relationCreate->relationFieldValues->PvFieldValueData->Value = $name;

// This one has to repeat wich does not work. Wich is logical
$relationCreate->relationFieldValues = new stdClass();
$relationCreate->relationFieldValues->PvFieldValueData = new stdClass();
$relationCreate->relationFieldValues->PvFieldValueData->Id = "9d549512-dc8a-4774-84d1-27a349e8a8c7";
$relationCreate->relationFieldValues->PvFieldValueData->Value = $name;

Мыло должно выглядеть следующим образом, я тестировал это с помощью SoapUI:

<api:fieldValues>
    <!--Zero or more repetitions:-->
    <api:PvFieldValueData>
        <api:Id>c2fcb464-92e6-4227-8672-56f88e219279</api:Id>
        <!--Optional:-->
        <api:Value>Test</api:Value>
    </api:PvFieldValueData>
</api:fieldValues>

<api:fieldValues>
<!--Zero or more repetitions:-->
<api:PvFieldValueData>
    <api:Id>d900fe23-8549-451c-82f4-c5918cb3abbb</api:Id>
    <!--Optional:-->
    <api:Value>Test</api:Value>
</api:PvFieldValueData>
</api:fieldValues>
     
 

Файл WSDL для справки: https://api.perfectview.nl/V1/perfectview.asmx?WSDL

Использованная литература: PHP SoapClient - несколько атрибутов с одним и тем же ключом

SoapClient: как передать несколько элементов с одинаковым именем?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
0
267
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать поместить элементы в массив.

Пример:

$relationCreate->relationFieldValues = [];

// repeat this in a foreach loop:
$item = new stdClass();
$item->PvFieldValueData = new stdClass();
$item->PvFieldValueData->Id = $uuid;
$item->PvFieldValueData->Value = $name;

// Add item to values
$relationCreate->relationFieldValues[] = $item; 

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