Laravel Nova:将列中的表单字段分组

时间:2018-12-17 14:42:17

标签: laravel laravel-nova

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

例如,我正在尝试将名字和姓氏分开,但不想在两行中都使用它。我希望将其并排放置,但是我找不到选择该选项的可能性。

有人知道如何解决吗?或是否有提供此服务的包装?我已经搜索过,但没有找到。

谢谢

2 个答案:

答案 0 :(得分:0)

Laravel Nova目前无法实现。

答案 1 :(得分:0)

这可以用这个包来实现: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 列。

示例:enter image description here

完整代码:

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

            \R64\NovaFields\Select::make(__('Užsakymo tipas'), 'order_type')->options([
                'equipment_rent' => __('Įrangos nuoma'),
                'entertainment_and_equipment_rent' => __('Pramogų ir įrangos nuoma'),
                'equipment_rent_inplace' => __('Įrangos nuoma iš vietos'),
            ])
                ->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(__('Regionas'), 'region')->options([
                'vilnius' => __('Vilniaus'),
                'klaipeda' => __('Klaipėdos'),
            ])
                ->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(__('Pardavėjas'), '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'),
        ];
    }