属性分组

属性分组提供了一种灵活的方式来控制属性的输入和输出行为,允许在不同场景下精细地管理数据转换。


分组原理说明

  • 使用 #[Groups(...)] 注解可将属性归类到一个或多个分组中。

  • 支持:

    • 输入时 按分组过滤数据字段

    • 输出时 按分组筛选输出字段

  • 未指定分组的属性将自动归入 "default" 分组。


基本示例

use Astral\Serialize\Attributes\Groups;
use Astral\Serialize\Serialize;

class User extends Serialize {

    #[Groups('update', 'detail')]
    public string $id;

    #[Groups('create', 'update', 'detail')]
    public string $name;

    #[Groups('create', 'detail')]
    public string $username;

    #[Groups('other')]
    public string $sensitiveData;

    // 未指定分组,默认为 default 分组
    public string $noGroupInfo;

    public function __construct(
        #[Groups('create', 'detail')]
        public readonly string $email,

        #[Groups('update', 'detail')]
        public readonly int $score
    ) {}
}

按分组接收

按分组输出

嵌套对象的分组

最后更新于