用途:在 Nuxt 应用中定义 API 实体对应的领域模型类,把接口返回的原始数据自动转换为带类型、关系和转换逻辑的对象。
主要能力:通过 Model 基类实现自动水合(hydrate 单条、collect 集合);支持 isDraft 等普通属性、ulid 等主键、status 枚举转换与 createdAt 值对象转换;通过 relations() 声明模型之间的关系,水合后可直接访问关联对象属性;通过 casts() 将字段转换为枚举或值对象,从而调用其方法(如 status.color()、createdAt.format());可在模型上定义业务方法(如 isPublished()),并支持用 is() 比较两个模型是否具有相同主键。
生命周期:API 响应依次经过 booting()、transform()、属性赋值、关系水合、类型转换、booted(),最后变为可用模型。
使用方式:在 app/models 下新建模型文件,继承 Model,声明属性类型,按需重写 primaryKey()、casts()、relations();从 API 响应调用 Post.hydrate(data) 或 Post.collect(data) 完成实例化。
适用场景:需要把接口数据封装为类型安全领域对象的 Nuxt 项目,尤其是带有枚举、日期值对象和实体关联关系的 API 实体建模。
限制:资料未提供安装方式、依赖要求、版本兼容范围、性能与运行环境限制;示例中的 #layers/base 路径与项目结构相关,实际使用需按自身项目调整。相关文档文件为 models.md 与 values.md。