PHP Laravel 5 SoapServer с использованием Zope, проблема с форматированием ответа <Item>Теги - PullRequest
0 голосов
/ 22 апреля 2020

Итак, у меня возникла проблема с форматированием массива ответов, как показано ниже. Текущие результаты:

<user>
    <userId>4562</userId>
    <userName>M00001</userName>
    <languageId>27</languageId>
    <languageCode>en</languageCode>
    <acls>
        <acl>
            <ns1:acl>
                <identity>SCP</identity>
                <permissions>R</permissions>
            </ns1:acl>
            <ns1:acl>
                <identity>SCP.EVDS.ACCOUNT.HISTORY</identity>
                <permissions>RWCD</permissions>
            </ns1:acl>
        </acl>
    </acls>
</user>

Ожидаемый результат:

<user>
    <userId>4562</userId>
    <userName>M00001</userName>
    <languageId>27</languageId>
    <languageCode>en</languageCode>
    <acls>
        <acl>
            <identity>SCP</identity>
            <permissions>R</permissions>
        </acl>
        <acl>
            <identity>SCP.EVDS.ACCOUNT.HISTORY</identity>
            <permissions>RWCD</permissions>
        </acl>
    </acls>
</user>

Используя Zoap-сервер, я создал 2 класса для обработки входящий массив, который выглядит как $acls->acl(arrayOfacl)

Мои файлы классов:

<?php

namespace App\Http\Controllers\Types\Response;

class acls
{
    /**
     * @var App\Http\Controllers\Types\Response\acl[] ___FOR_ZEND_minOccurs=0
     */
    public $acl = null;

    /**
     * KeyValue constructor.
     * @param App\Http\Controllers\Types\Response\acl[] $acl
     */
    public function __construct($acl = '[]')
    {

        $this->acl = $acl;
    }
}
<?php

namespace App\Http\Controllers\Types\Response;

class acl
{
    /**
     * @var string
     */
    public $identity = '';
    /**
     * @var string
     */
    public $permissions = '';
    /**
     * KeyValue constructor.
     */
    public function __construct($identity='', $permissions='')
    {
        $this->identity = $identity;
        $this->permissions = $permissions;
    }
}

и

<?php
namespace App\Http\Controllers\Types\Response;

class UserLogin
{
    /**
     * @var string ___FOR_ZEND_minOccurs=0
     */
    public $userId = null;
    /**
     * @var string ___FOR_ZEND_minOccurs=0
     */
    public $userName = null;
    /**
     * @var string ___FOR_ZEND_minOccurs=0
     */
    public $languageId = null;
    /**
     * @var string ___FOR_ZEND_minOccurs=0
     */
    public $languageCode = null;
    /**
     * @var App\Http\Controllers\Types\Response\acls ___FOR_ZEND_minOccurs=0
     */
    public $acls = null;
    /**
     * UserLogin constructor.
     */
    public function __construct($userId ='', $userName ='', $languageId= '', $languageCode='', $acls = '')
    {
        $this->userId = $userId;
        $this->userName = $userName;
        $this->languageId = $languageId;
        $this->languageCode = $languageCode;
        $this->acls = $acls;

    }
}

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

...