ការស្រង់យកទិន្នន័យពីក្នុងបណ្តុំទិន្នន័យ ត្រូវធ្វើឡើងតាមរយៈក្បួន getCollection( ) និងឬក្បួន getEntry( ) នៅក្នុងសាស្ត្រា astro:content។ ក្បួន getCollection( ) ត្រូវប្រើសំរាប់ស្រង់យកបណ្តុំទិន្នន័យទាំងមូល ចំណែកឯក្បួន getEntry( ) ត្រូវប្រើសំរាប់ស្រង់យកឯកសារទិន្នន័យតែមួយ។ ចំពោះទិន្នន័យដែលយោងទៅលើបណ្តុំទិន្នន័យផ្សេងទៀត យើងចាំបាច់ត្រូវស្រង់យកទិន្នន័យនោះជាលើកទី ២ ពីបណ្តុំទិន្នន័យផ្សេងទៀតនោះ។
<!--src/pages/posts/[slud].astro-->
---
import { getCollection, getEntry } from 'astro:content'
const { slug } = Astro.params
const post = await getEntry('posts', slug)
const author = await getEntry(post.data.author)
const { Content, headings } = await post.render()
---
<h1>{post.data.title}</h1>
<p>និពន្ធដោយ: {author.data.name}</p>
<Content/>
ការស្រង់យកបណ្តុំទិន្នន័យដោយប្រើប្រាស់ក្បួន getCollection( ) អាចត្រូវធ្វើឡើងដោយច្រោះយកតែទិន្នន័យណាដែលយើងត្រូវការ។
<!--src/pages/posts/[slud].astro-->
---
import { getCollection, getEntry } from 'astro:content'
const { slug } = Astro.params
const posts = await getCollection('posts', (post) => {return post.slug === slug})
const author = await getEntry(posts[0].data.author)
const { Content, headings } = await posts[0].render()
---
<h1>{posts[0].data.title}</h1>
<p>និពន្ធដោយ: {author.data.name}</p>
<Content/>
ក្នុងករណីដែលយើងប្រើប្រាស់របៀប SSG ការបង្កើតផ្លូវត្រូវធ្វើឡើងសំរាប់គ្រប់ផ្លូវទាំងអស់។ ហើយបើយើងជ្រុលជាកែប្រែកម្មវិធីរបស់យើងអោយប្រើប្រាស់របៀប SSR យើងអាចត្រឡប់ទៅប្រើរបៀប SSG វិញបាន ដោយកែប្រែឯកសារ astro.config.mjs ដូចខាងក្រោមនេះ៖
import { defineConfig } from 'astro/config';
// import node from "@astrojs/node";
// https://astro.build/config
export default defineConfig({
/*
output: "server",
adapter: node({
mode: "standalone"
})
*/
});
បើយើងប្រើប្រាស់របៀប SSG ការបង្កើតផ្លូវរបស់យើងត្រូវប្រើក្បួន getStaticPaths( ) ដោយធ្វើដូចខាងក្រោមនេះ៖
<!--src/pages/posts/[slud].astro-->
---
import { getCollection, getEntry } from 'astro:content'
export async function getStaticPaths() {
const posts = await getCollection('posts')
return posts.map(post => ({
params: { slug: post.slug }, props: { post },
}))
}
const { slug } = Astro.params
const { post } = Astro.props
const author = await getEntry(post.data.author)
const { Content, headings } = await post.render()
---
<h1>{ post.data.title }</h1>
<p>និពន្ធដោយ: { author.data.name }</p>
<Content/>