Laravel nova - 从具有 HasMany 关系的编辑/创建表单附加多个模型

Vin*_*yan 5 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(),
    ];
}
Run Code Online (Sandbox Code Playgroud)

另外,我有一个名为“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(),
    ];
}
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

但是现在,客户希望能够从“Rate”的编辑表单中添加多个“合作伙伴”。如何使这成为可能?有任何想法吗?

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

San*_*sol 2

您无法将任何内容附加到 HasMany。有问题/请求https://github.com/laravel/nova-issues/issues/520

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