@@ -67,7 +67,7 @@ export const collections = { blog };
67
67
68
68
` loader ` 是一个对象或函数,允许你从任何源加载数据到内容集合中,无论是本地还是远程数据。
69
69
70
- 更多有关示例请 [ 参考 ` 内容集合 ` 指南] ( /zh-cn/guides/content-collections/#定义集合-loader ) 。
70
+ 更多有关示例请 [ 参考` 内容集合 ` 指南] ( /zh-cn/guides/content-collections/#定义集合-loader ) 。
71
71
72
72
#### ` schema `
73
73
@@ -79,7 +79,7 @@ export const collections = { blog };
79
79
80
80
` schema ` 是一个可选的 Zod 对象,用于配置集合的文档 frontmatter 的类型和形状。每个值必须使用 [ Zod 验证器] ( https://github.com/colinhacks/zod )
81
81
82
- 更多有关示例请 [ 参考 ` 内容集合 ` 指南] ( /zh-cn/guides/content-collections/#定义集合模式schema ) 。
82
+ 更多有关示例请 [ 参考` 内容集合 ` 指南] ( /zh-cn/guides/content-collections/#定义集合模式schema ) 。
83
83
84
84
### ` reference() `
85
85
@@ -89,9 +89,9 @@ export const collections = { blog };
89
89
<Since v = " 2.5.0" />
90
90
</p >
91
91
92
- 在内容配置中使用 ` reference() ` 函数来定义从一个集合到另一个集合的关系或 "引用" 。该函数接受一个集合名称,并在将引用转换为包含集合名称和引用 id 的对象之前,验证内容 ` frontmatter ` 或数据文件中指定的条目标识符 。
92
+ 内容配置中的 ` reference() ` 函数,用于定义一个集合与另一个集合之间的关联,或者说“引用” 。该函数接受一个集合名称,并将其转换为一个包含集合名称与引用 id 的对象 。
93
93
94
- 此示例定义了从博客作者到 "作者 " 集合的引用,以及到同一 "博客 " 集合的相关文章数组的引用:
94
+ 此示例定义了从博客作者到 ` authors ` 集合的引用,以及到同一 ` blog ` 集合的相关文章数组的引用:
95
95
96
96
``` ts
97
97
import { defineCollection , reference , z } from ' astro:content' ;
@@ -100,9 +100,9 @@ import { glob, file } from 'astro/loaders';
100
100
const blog = defineCollection ({
101
101
loader: glob ({ pattern: ' **/*.md' , base: ' ./src/data/blog' }),
102
102
schema: z .object ({
103
- // 通过 "id "从 "作者 "集合中引用单个作者
103
+ // 通过 `id` 从 `authors` 集合中,引用单个作者
104
104
author: reference (' authors' ),
105
- // 按 " slug "从 " blog "集合中引用相关帖子数组
105
+ // 通过 ` slug` 从 ` blog` 集合中,引用相关帖子数组
106
106
relatedPosts: z .array (reference (' blog' )),
107
107
})
108
108
});
@@ -115,7 +115,14 @@ const authors = defineCollection({
115
115
export const collections = { blog , authors };
116
116
```
117
117
118
- 更多有关示例请 [ 参考 ` 内容集合 ` 指南] ( /zh-cn/guides/content-collections/#定义集合引用 ) 。
118
+ 在使用 ` getEntry() ` 或 ` getEntries() ` 的运行时环境下,对引用条目的有效性进行验证:
119
+
120
+ ``` astro title="src/pages/[posts].astro"
121
+ // 如果引用条目是无效的,那么将会返回 undefined。
122
+ const relatedPosts = await getEntries(blogPost.data.relatedPosts);
123
+ ```
124
+
125
+ 更多有关示例请 [ 参考` 内容集合 ` 指南] ( /zh-cn/guides/content-collections/#定义集合引用 ) 。
119
126
120
127
### ` getCollection() `
121
128
@@ -143,7 +150,7 @@ const draftBlogPosts = await getCollection('blog', ({ data }) => {
143
150
---
144
151
```
145
152
146
- 更多有关示例请 [ 参考 ` 内容集合 ` 指南] ( /zh-cn/guides/content-collections/#查询集合 ) 。
153
+ 更多有关示例请 [ 参考` 内容集合 ` 指南] ( /zh-cn/guides/content-collections/#查询集合 ) 。
147
154
148
155
### ` getEntry() `
149
156
@@ -252,8 +259,7 @@ import type { CollectionEntry } from 'astro:content';
252
259
253
260
#### ` id `
254
261
255
- ** 适用于:** ` type: 'content' ` 和 ` type: 'data' ` 集合
256
- ** 示例类型:** ` 'author-1' | 'author-2' | ... `
262
+ ** 类型:** ` string `
257
263
258
264
一个唯一的 ID。请注意,Astro 的内置 ` glob() ` 加载器中的所有 ID 都是 slug 化的。
259
265
0 commit comments