Как организовать вывод имени страницы, связанной с полем Relationship Field в payload
Доброго времени суток я Использую безголовую CMS payload и у меня встала дилемма.
Мне нужно, чтобы в поле Link отображалось значение из связанной коллекции Pages (значение из поля name: 'NamePage'
). В данный момент выводится только ID страницы, что неудобно, так как непонятно, какая именно страница связана.
import Heading from '../blocks/Heading'
import { CollectionConfig } from 'payload/types'
export const Pages: CollectionConfig = {
slug: 'pages',
labels: {
singular: 'Страница',
plural: 'Страницы',
},
access:{
read: () => true,
},
fields: [
{
name: 'NamePage',
label: 'Название страницы',
type: 'text',
required: true,
},
{
name: 'URL',
label: 'Адресс страницы',
type: 'text',
required: true,
},
{
name: 'layout',
label: 'Шаблон',
type: 'blocks',
blocks: [
Heading,
]
}
]
}
код поля Link
import type { Field } from 'payload/types'
import type { UploadField } from 'payload/dist/fields/config/types'
export const LinkField = (options?: Partial<UploadField>): Field => ({
...options,
name: 'Link',
type: 'relationship',
relationTo: 'pages',
hasMany: false,
admin: {
width: '50%',
}
});
Ответы (1 шт):
Автор решения: Максим
→ Ссылка
просто нужно добавить
admin: {
useAsTitle: 'namepage',
},
получается вот так
import Heading from '../blocks/Heading'
import { CollectionConfig } from 'payload/types'
export const Pages: CollectionConfig = {
slug: 'pages',
admin: {
useAsTitle: 'namepage',
},
labels: {
singular: 'Страница',
plural: 'Страницы',
},
access:{
read: () => true,
},
fields: [
{
name: 'NamePage',
label: 'Название страницы',
type: 'text',
required: true,
},
{
name: 'URL',
label: 'Адресс страницы',
type: 'text',
required: true,
},
{
name: 'layout',
label: 'Шаблон',
type: 'blocks',
blocks: [
Heading,
]
}
]
}