在 JSON 列中存储多个字段 (Nova CMS)
Store multiple fields in JSON column (Nova CMS)
我的帖子 table 有一个 json 列“read_more_section”。
我想在该列中存储有关 NOVA CMS 上某些字段的信息(标题、描述、标签和 link)。你知道如何在 Nova 中正确地做到这一点吗?要存储在 json 列“read_more_section”的这 4 个字段中输入的内容?
public function fields(Request $request)
{
return [
ID::make(__('ID'), 'id')->sortable(),
new Panel('Read More Section', [
Text::make('Title')->rules(['max:255']),
Text::make('Description'),
Text::make('Label'),
Text::make('Link'),
]),
];
}
您可以创建 getter 和 setter,捕获这些字段的值并将其转换为 json 对象。
或者您可以使用 https://github.com/whitecube/nova-flexible-content
并在布局中设置 1 的限制。
https://whitecube.github.io/nova-flexible-content/#/?id=limiting-layouts-per-type
https://whitecube.github.io/nova-flexible-content/#/?id=limiting-layouts
新星资源
public function fields(Request $request)
{
return [
ID::make(__('ID'), 'id')->sortable(),
new Panel(__('Read More'), [
Flexible::make('Specifications', read_more_section)
->addLayout(ReadMoreLayout::class)
->limit(1),
]),
];
}
ReadMoreLayout.php
class ReadMoreLayout extends Layout
{
/**
* The layout's unique identifier
*
* @var string
*/
protected $name = 'title';
/**
* The displayed title
*
* @var string
*/
protected $title = 'Read More Section';
protected $limit = 1;
/**
* Get the fields displayed by the layout.
*
* @return array
*/
public function fields()
{
return [
Text::make('Title')->rules(['max:255']),
Text::make('Description'),
Text::make('Label'),
Text::make('Link'),
];
}
}
我的帖子 table 有一个 json 列“read_more_section”。
我想在该列中存储有关 NOVA CMS 上某些字段的信息(标题、描述、标签和 link)。你知道如何在 Nova 中正确地做到这一点吗?要存储在 json 列“read_more_section”的这 4 个字段中输入的内容?
public function fields(Request $request)
{
return [
ID::make(__('ID'), 'id')->sortable(),
new Panel('Read More Section', [
Text::make('Title')->rules(['max:255']),
Text::make('Description'),
Text::make('Label'),
Text::make('Link'),
]),
];
}
您可以创建 getter 和 setter,捕获这些字段的值并将其转换为 json 对象。
或者您可以使用 https://github.com/whitecube/nova-flexible-content 并在布局中设置 1 的限制。
https://whitecube.github.io/nova-flexible-content/#/?id=limiting-layouts-per-type https://whitecube.github.io/nova-flexible-content/#/?id=limiting-layouts
新星资源
public function fields(Request $request)
{
return [
ID::make(__('ID'), 'id')->sortable(),
new Panel(__('Read More'), [
Flexible::make('Specifications', read_more_section)
->addLayout(ReadMoreLayout::class)
->limit(1),
]),
];
}
ReadMoreLayout.php
class ReadMoreLayout extends Layout
{
/**
* The layout's unique identifier
*
* @var string
*/
protected $name = 'title';
/**
* The displayed title
*
* @var string
*/
protected $title = 'Read More Section';
protected $limit = 1;
/**
* Get the fields displayed by the layout.
*
* @return array
*/
public function fields()
{
return [
Text::make('Title')->rules(['max:255']),
Text::make('Description'),
Text::make('Label'),
Text::make('Link'),
];
}
}