Laravel Nova:按列分组表单字段

Posted

技术标签:

【中文标题】Laravel Nova:按列分组表单字段【英文标题】:Laravel Nova: Group form fields in columns 【发布时间】:2019-05-17 22:52:31 【问题描述】:

如何在 Laravel Nova 中的表单字段上创建列?

例如,我试图将名字和姓氏分开,但不想将其放在两行。我更希望将它放在一起,但我找不到任何选择该选项的可能性。

有人知道如何解决吗?或者有一个包可以做到这一点?我已经搜索过了,但没有找到。

谢谢

更新: web agency 的人帮助我,创建了一个自定义字段。

【问题讨论】:

【参考方案1】:

这可以通过这个包来实现:https://github.com/64robots/nova-fields 以及在某些字段上定义的一些自定义 CSS。在我的情况下是这样的:

...
->labelClasses('w-full pt-4')
->wrapperClasses('flex flex-col w-1/3 float-left flex-1 px-4 pl-8')
...

w-1/3 表示 33%,float-left 当然是 float: left。对前 2 个字段应用 float-left,w-1/3 树将产生 3 列。

示例:

例子:

composer require 64robots/nova-fields

public function fields(Request $request) 
    return [
        ID::make('ID', 'id')->sortable(),

        \R64\NovaFields\Select::make('Order type', 'order_type')->options([
            'equipment_rent'                   => 'Equipment Rental',
            'entertainment_and_equipment_rent' => 'Entertainment and Equipment Rental',
            'equipment_rent_inplace'           => 'Equipment Rental on Location',
        ]) ->labelClasses('w-full pt-4')
           ->wrapperClasses('flex flex-col w-1/3 float-left flex-1 px-4 pl-8')
           ->fieldClasses('w-full py-4'),

        \R64\NovaFields\Select::make('Region', 'region')->options([
            'country'                          => 'Vilniaus',
            'province'                         => 'Klaipėda',
        ]) ->labelClasses('w-full pt-4')
           ->wrapperClasses('flex flex-col w-1/3 float-left flex-1 px-4')
           ->fieldClasses('w-full py-4'),

        \R64\NovaFields\BelongsTo::make('Seller', 'seller', Seller::class)
           ->labelClasses('w-full pt-4')
           ->wrapperClasses('flex flex-col w-1/3 flex-1 px-4 pr-8')
           ->fieldClasses('w-full py-4'),

        Text::make('Test'),
        Text::make('Test another'),
    ];

【讨论】:

【参考方案2】:

目前这在 Laravel Nova 中是不可能的。

【讨论】:

以上是关于Laravel Nova:按列分组表单字段的主要内容,如果未能解决你的问题,请参考以下文章

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

在 Laravel Nova Vue 组件中观看动态渲染的字段

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

按列分组并选择具有多个最小值的行中的所有字段

Laravel Nova Actions BelongsTo 字段不起作用

Laravel Nova 字段 BelongsToMany 向下钻取数据