Laravel Nova-通过HasMany关系从编辑/创建表单附加多个模型

时间:2018-11-29 06:44:50

标签: laravel laravel-nova

我有一个名为“合作伙伴”的Nova资源,其中包含字段:

public function fields(Request $request)
{
    return [
        Text::make('Name*', 'name')->rules('required')->sortable()->onlyOnForms(),
        Text::make('Name', 'name')->sortable()->exceptOnForms(),

        BelongsTo::make('Rate*', 'customrate', 'App\Nova\Rate')
            ->onlyOnForms()->nullable(),
        BelongsTo::make('Rate', 'customrate', 'App\Nova\Rate')
            ->searchable()->exceptOnForms(),
    ];
}

此外,我还有一个名为“ Rate”的相关Nova资源,其资源类型分别为:

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

        Text::make('Name*', 'name')->rules('required')->onlyOnForms(),
        Text::make('Name', 'name')->exceptOnForms(),

        Text::make('Flat Fee*', 'flat_fee')->rules('required')->onlyOnForms(),
        Text::make('Flat Fee', 'flat_fee')->exceptOnForms(),

        HasMany::make('Partner*', 'partner', 'App\Nova\Partner')->onlyOnForms(),
        HasMany::make('Partner', 'partner', 'App\Nova\Partner')->exceptOnForms(),
    ];
}

现在,我可以从合作伙伴的表单中向“合作伙伴”添加“费率”。

enter image description here

但是现在,客户希望能够从“费率”的编辑表单中添加多个“合作伙伴”。如何做到这一点?有什么想法吗?

现在Nova为我提供了在“费率”下创建多个新合作伙伴的选项,但不将现有的合作伙伴附加到“费率”上。

1 个答案:

答案 0 :(得分:1)

您不能对HasMany附加任何内容。 https://github.com/laravel/nova-issues/issues/520

有问题/要求

当前可能的解决方案是将BelongsToMany与数据透视表一起使用。