实体对象转数组

Pre*_*iel 2 symfony symfony-3.4

我正在尝试将实体转换为关联数组。
看来该方法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())
    ));
}
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,我收到此错误消息

警告:isset 或空中的偏移类型非法

如果我替换new ObjectNormalizer()'jsons',我将收到下一条错误消息:

序列化“AppBundle\Entity\Projet”类的对象时检测到循环引用(配置限制:1)

Lun*_*man 6

我建议您将以下方法添加到需要转换的对象中

public function toArray()
{
    return get_object_vars($this);
}
Run Code Online (Sandbox Code Playgroud)

并在任何地方使用它$array = $projet->toArray();