代码之家  ›  专栏  ›  技术社区  ›  Preciel

实体对象到数组

  •  0
  • Preciel  · 技术社区  · 5 年前

    我正在尝试将实体转换为关联数组。
    似乎这个方法 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 回复  |  直到 5 年前
        1
  •  1
  •   Majesty    5 年前

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

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

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

    推荐文章