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

问题描述 投票:3回答:1

我有一个名为“Partner”的Nova资源,其中包含fields方法:

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

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

现在,Nova允许我选择在费率下创建新的多个合作伙伴,但不会将现有合作伙伴附加到费率。

laravel laravel-nova
1个回答
1
投票

你不能给HasMany附上任何东西。有问题/要求它https://github.com/laravel/nova-issues/issues/520

目前可能的解决方案是使用BelongsToMany与数据透视表。

© www.soinside.com 2019 - 2024. All rights reserved.