使用 AbstractNormalizer::ATTRIBUTES 规范化嵌套对象

Normalize nested object with AbstractNormalizer::ATTRIBUTES

我有一个对象“Cliente”,它有一个名为“Responsavel”的嵌套对象(在其他字段中),然后在它里面有另一个名为“usuario”的对象。 我正在为 return 数据创建一个自定义规范化器作为 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 来说明我想要 returned 的字段,但是当我到达 'usuario' 时,我不知道如何调用我需要在其中形成的属性,例如usuario['id']。我在 symfony 的 git

上找到了这个

/** * Limit (de)normalize to the specified names. * * For nested structures, this list needs to reflect the object tree. */

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

找到了 selecting-specific-attributes

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