我有一个名为“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(),
];
}
现在,我可以从合作伙伴的表单中向“合作伙伴”添加“费率”。
但现在,客户希望能够从“Rate”的编辑表单中添加多个“合作伙伴”。如何使这成为可能?有任何想法吗?
现在,Nova允许我选择在费率下创建新的多个合作伙伴,但不会将现有合作伙伴附加到费率。
你不能给HasMany附上任何东西。有问题/要求它https://github.com/laravel/nova-issues/issues/520
目前可能的解决方案是使用BelongsToMany与数据透视表。