实体对象到数组

时间:2019-02-07 21:16:24

标签: 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())
    ));
}

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

  

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

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

  

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

1 个答案:

答案 0 :(得分:1)

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

 公共函数toArray()
{
    返回get_object_vars($ this);
}
 

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