首页 > 解决方案 > Laravel Nova Resource,在布局中组合字段?

问题描述

我正在使用 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>

标签: laravellaravel-nova

解决方案


你可以试试这个

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(),
    ];
}

查看字段面板laravel nova doc 部分以获取更多信息。


推荐阅读