使用 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']]]
我有一个对象“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']]]