文件夹
文件夹功能允许你在多个集合中对文档进行分组,是组织内容的绝佳方式。文件夹基于关系字段构建,当你在集合中启用文件夹功能时,Payload 会添加一个隐藏的关系字段 folders
,用于关联到某个文件夹或无文件夹状态。文件夹还包含 folder
字段,允许文件夹嵌套在其他文件夹中。
文件夹的配置需要在两个地方完成:集合配置和 Payload 配置。集合配置用于启用文件夹功能,而 Payload 配置用于设置全局文件夹参数。
注意: 文件夹功能目前处于测试阶段,在稳定版本发布前,可能会在次要版本更新中进行调整。
文件夹配置
在 Payload 配置中,你可以在 folders
属性下配置以下设置:
// 类型定义
type RootFoldersConfiguration = {
/**
* 文件夹集合初始化时运行的函数数组
* 允许插件修改集合配置
*/
collectionOverrides?: (({
collection,
}: {
collection: CollectionConfig
}) => CollectionConfig | Promise<CollectionConfig>)[]
/**
* 是否查看与文件夹相关的隐藏字段和集合
*
* @default false
*/
debug?: boolean
/**
* 文件夹字段名称
*
* @default "folder"
*/
fieldName?: string
/**
* 文件夹集合的 slug
*
* @default "payload-folders"
*/
slug?: string
}
// 使用示例
import { buildConfig } from 'payload'
const config = buildConfig({
// ...
folders: {
// highlight-start
debug: true, // 可选
collectionOverrides: [
async ({ collection }) => {
return collection
},
], // 可选
fieldName: 'folder', // 可选
slug: 'payload-folders', // 可选
// highlight-end
},
})
集合配置
要在集合上启用文件夹功能,你需要在集合配置中将 admin.folders
属性设置为 true
。这会在集合中添加一个隐藏的关系字段,用于关联到某个文件夹(或不关联任何文件夹)。
// 类型定义
type CollectionFoldersConfiguration = boolean
// 使用示例
import { buildConfig } from 'payload'
const config = buildConfig({
collections: [
{
slug: 'pages',
// highlight-start
folders: true, // 默认为 false
// highlight-end
},
],
})