实体对象阵列

问题描述 投票:0回答:1

我想一个实体转换为关联数组。 看来这个方法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 \实体\ PROJET”当一个循环引用已经被检测(配置的限制:1)

symfony symfony-3.4
1个回答
1
投票

我建议你到下面的方法添加到对象中,需要转换

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

到处都用它$array = $projet->toArray();

© www.soinside.com 2019 - 2024. All rights reserved.