Сущность объекта в массив - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь преобразовать сущность в ассоциативный массив.
Кажется, что метод toArray() недоступен для объектов сущности.

Чтение документа Symfony, похоже, мне следует использоватьSerializerInterface.
После включения я не могу найти правильный синтаксис для преобразования моей сущности в ассоциативный массив.

Может кто-нибудь исправить мой код, пожалуйста?

use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
use Symfony\Component\Serializer\SerializerInterface;

// -----------------------

public function salleAction(Request $request, Projet $projet, SerializerInterface $serializer) {
    return this->json(array(
        'projet'=>$serializer->serialize($projet, new ObjectNormalizer())
    ));
}

С кодом выше, я получаю это сообщение об ошибке

Предупреждение: недопустимый тип смещения в isset или пусто

Если я заменю new ObjectNormalizer() на 'jsons' Я получаю следующее сообщение об ошибке:

Обнаружена циклическая ссылка при сериализации объекта класса "AppBundle \ Entity \ Projet" (настроено ограничение: 1)

1 Ответ

0 голосов
/ 08 февраля 2019

Я предлагаю вам добавить следующий метод к объекту, который нужно преобразовать

public function toArray()
{
    return get_object_vars($this);
}

и использовать его везде $array = $projet->toArray();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...