Задать вопрос
@procode
Разработчик

Как преобразовать коллекцию(или массив) Laravel в XML?

Здравствуйте!

При переносе в Laravel "сломалась" функция вывода запроса из базы в виде XML-документа. Начались проблемы с форматом (оно мне делает какой-то жуткий гибрид JSON и XML))) и с кодировкой (отдает всякие \u043f\u043e\u043d\u0440\u0430 а
$xml_string = html_entity_decode($xml_string, ENT_NOQUOTES, 'UTF-8');

не помогает (раньше, до Laravel, помогала)))

Что делать?

Как легко и просто вывести запрос типа:

$xml = $model->whereBetween('created_at', [$date_from, $date_to])->get();


в виде валидного XML-документа?

Я уже склоняюсь к тому, что проще "руками" в цикле собрать.

Но если есть готовые решения - буду рад узнать о них.

Спасибо.

П.С. В общем и целом если переформулировать исходный вопрос, то это звучит так:

- Каким образом можно превратить коллекцию Laravel в обычный многомерный ассоциативный массив со строковыми значениями?
  • Вопрос задан
  • 1504 просмотра
Подписаться 1 Простой 3 комментария
Решения вопроса 2
boyarskiy_mihail
@boyarskiy_mihail
Ответ написан
Комментировать
@procode Автор вопроса
Разработчик
Ответ нашел ...в документации!)))

Сериализация моделей и коллекций
Сериализация в массивы
Для преобразования модели и её загруженных отношений в массив надо использовать метод toArray(). Этот метод рекурсивный, поэтому все атрибуты и все отношения (включая отношения отношений) будут конвертированы в массивы:

$user = App\User::with('roles')->first();

return $user->toArray();
Вы можете также преобразовывать целые коллекции моделей в массивы:

$users = App\User::all();

return $users->toArray();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы