【问题标题】:Normalize nested object with AbstractNormalizer::ATTRIBUTES使用 AbstractNormalizer::ATTRIBUTES 规范化嵌套对象
【发布时间】:2021-03-19 17:46:28
【问题描述】:

我有一个对象“Cliente”,它有一个名为“Responsavel”的嵌套对象(在其他字段中),然后在其中有另一个名为“usuario”的对象。 我正在创建一个自定义规范器以将数据作为 json 返回给我,到目前为止我有这个:


    public function normalize($cliente, $format = null, array $context = [])
    {
        // $data = $this->normalizer->normalize($cliente, $format, $context);
        $data['clienteId'] = $cliente->getId();
        $data['clienteCodigo'] = $cliente->getCodigo();
        $data['clienteRazao'] = $cliente->getRazao();
        $data['clienteRegistro'] = $cliente->getRegistro();
        $data['responsaveis']= [];
        $responsaveis = $cliente->getResponsavel();
        foreach($responsaveis as $responsavel){
            array_push($data['responsaveis'],$this->normalizer->normalize($responsavel, $format, [AbstractNormalizer::ATTRIBUTES => ['id', 'competenciaInicial','ativo', 'usuario']]));
        }
        
        
        return $data;

    }   


我正在使用 AbstractNormalizer 来说明我想要返回的字段,但是当我到达“usuario”时,我不知道如何调用我需要其中的属性,例如 usuario['id']例子。我在 symfony 的 git 上找到了这个

/** * 限制(反)规范化为指定的名称。 * * 对于嵌套结构,此列表需要反映对象树。 */

我怎样才能做到这一点?谢谢!

【问题讨论】:

    标签: php symfony serialization normalization


    【解决方案1】:

    找到它selecting-specific-attributes

    从嵌套对象中选择属性时,您需要像 [AbstractNormalizer::ATTRIBUTES => ['flatAttr', 'nestedOject'=>['flatAttrFromNestedObj']]] 一样进行操作

    【讨论】:

      猜你喜欢
      • 2020-05-06
      • 2019-09-04
      • 2018-11-26
      • 2017-05-02
      • 2022-10-25
      • 2011-02-23
      • 1970-01-01
      • 2021-08-20
      • 2016-11-15
      相关资源
      最近更新 更多