Sam*_*ler 0 serialization doctrine symfony doctrine-orm symfony4
序列化组件时出现循环引用错误。通常这可以修复使用
$normalizer->setCircularReferenceHandler()
Run Code Online (Sandbox Code Playgroud)
但是,我正在使用 SerializerInterface 像这样:
/**
* @Route("/get/{id}", name="get_order_by_id", methods="GET")
*/
public function getOrderById(SerializerInterface $serializer, OrderRepository $orderRepository, $id): Response
{
return new Response($serializer->serialize(
$orderRepository->find($id),
'json',
array('groups' => array('default')))
);
}
Run Code Online (Sandbox Code Playgroud)
使用此接口进行序列化时是否可以修复循环引用错误?
你完全可以。只需将其添加到您的框架配置中即可。
framework:
serializer:
circular_reference_handler: App\Serializer\MyCustomCircularReferenceHandler
Run Code Online (Sandbox Code Playgroud)
此处理程序将在全球范围内工作。确保将其注册为服务。我不需要实现任何接口。因此,只要有__invoke()意愿的课程就足够了。该调用将接收被“循环引用”的对象作为唯一参数。
您可以返回 id 或做一些非常酷的事情,比如为资源创建一个 uri。但是实现细节完全取决于你,只要你不返回同一个对象,一切都会好起来的。
:)
| 归档时间: |
|
| 查看次数: |
891 次 |
| 最近记录: |