我可以让 symfony 序列化程序要求所有组都在场吗?不只是群组列表中的一个?

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

例如我有一套房产

#[Groups(['show', 'admin])]
public mixed $name;

如果所有组都不在上下文中,我希望序列化程序忽略该属性。例如,默认情况下,它仍然会包含它:

$this->json($user, context: ['groups' => ['show']]);
php symfony symfony7 symfony-serializer
1个回答
1
投票

如果您想需要所有指定的组,您需要创建一个自定义序列化器。默认的没有提供任何解决方案。

您应该遵循 NormalizerInterface 的结构,特别是使用supportsNormalization() 方法来验证自定义规范化器何时应激活。

您可以在 Symfony 官方文档中找到 Symfony 序列化器组件的完整文档 - 在序列化器组件下。

如果您只有 2 组,您可以添加第三组,例如

show_admin

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