Laravel Nova Resource,在布局中组合字段?

Posted

技术标签:

【中文标题】Laravel Nova Resource,在布局中组合字段?【英文标题】:Laravel Nova Resource, combine fields in layout? 【发布时间】:2019-12-15 05:55:32 【问题描述】:

我正在使用 Laravel 和 Nova,我有一个包含多个字段的 Collection 资源,现在当您定义字段时:

Text::make('Meta 1 Label')->hideFromIndex(),
Text::make('Meta 1 Value')->hideFromIndex(),
Text::make('Meta 2 Label')->hideFromIndex(),
Text::make('Meta 2 Value')->hideFromIndex(),
Text::make('Meta 3 Label')->hideFromIndex(),
Text::make('Meta 3 Value')->hideFromIndex(),
Text::make('Meta 4 Label')->hideFromIndex(),
Text::make('Meta 4 Value')->hideFromIndex(),

每个字段将占一行,在 html 中。

现在我想知道是否可以使用自定义布局选项(无需制作完整的自定义工具),以便例如可以在 div 中对几个文本字段进行分组。 标签和值字段在一行

伪代码

<div class="flex">
    Text::make('Meta 1 Label')->hideFromIndex(),
    Text::make('Meta 1 Value')->hideFromIndex(),
</div>
<div class="flex">
    Text::make('Meta 2 Label')->hideFromIndex(),
    Text::make('Meta 2 Value')->hideFromIndex(),
</div>

【问题讨论】:

您好,您找到解决方案了吗?谢谢 【参考方案1】:

你可以试试这个

public function fields(Request $request)

    return [
        ID::make()->sortable(),

        new Panel('Group 1', $this->group1()),
        new Panel('Group 1', $this->group2()),
    ];


protected function group1()

    return [
        Text::make('Meta 1 Label')->hideFromIndex(),
        Text::make('Meta 1 Value')->hideFromIndex(),
    ];


protected function group2()

    return [
        Text::make('Meta 2 Label')->hideFromIndex(),
        Text::make('Meta 2 Value')->hideFromIndex(),
    ];

查看field-panels laravel nova 文档部分了解更多信息。

【讨论】:

以上是关于Laravel Nova Resource,在布局中组合字段?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 Laravel 中为 Nova 资源显式定义策略?

Laravel Nova 中的自定义 Vue 组件

将 Laravel Nova 移至子域

Laravel Nova 自定义字段获取模型值

如何将 Vuex 添加到我的 Laravel Nova 工具中?

Laravel Nova 只能从特定守卫访问