SuperAPI AI 工具集

payload-cms

编程与开发

查看项目

更新于 10-15 20:27

技能介绍

用途:在开发 Payload CMS 项目(payload.config.ts、collections、fields、hooks、access control、Payload API)时提供专家级知识,帮助正确构建集合、钩子、访问控制与查询。Payload 是 Next.js 原生、TypeScript 优先的 CMS,可理解为配置层(集合、全局、字段定义 schema)、钩子层(生命周期事件转换与校验数据)、访问层(控制权限)三层,操作流程为配置→访问检查→钩子链→数据库→响应钩子。

主要能力:自动生成 slug(slugField() 或 beforeChange 钩子)、按用户限制(带查询约束的访问控制)、带鉴权的 Local API(user + overrideAccess: false)、草稿/发布(versions: { drafts: true })、计算字段(virtual: true 配合 afterRead)、条件字段(admin.condition)、关系过滤(filterOptions)、防止钩子循环(req.context 标志)、事务(向所有操作传 req)、后台任务(Jobs 队列)。

使用方式:用 npx create-payload-app@latest my-app 创建项目,cd my-app 后 pnpm dev 启动。配置通过 buildConfig 定义 admin.user、collections、editor、secret、typescript.outputFile 与 db 适配器。集合用 CollectionConfig 定义 slug、admin、fields、timestamps。查询用 payload.find 并传 where、depth、limit、sort。在 API 路由或 Server Components 中用 getPayload({ config }) 获取实例。schema 变更后生成类型并从 payload-types.ts 导入。

限制与安全规则:Local API 默认绕过所有访问控制,代表用户操作时必须显式 overrideAccess: false;钩子中的嵌套操作必须传 req 以保持事务原子性;递归钩子需用 context 标志避免无限循环。详细模式见 references 下的 fields、collections、hooks、access-control、queries、advanced 文档。官方文档 https://payloadcms.com/docs,GitHub https://github.com/payloadcms/payload。