我有一个名为“合作伙伴”的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(),
];
}
现在,我可以从合作伙伴的表单中向“合作伙伴”添加“费率”。
但是现在,客户希望能够从“费率”的编辑表单中添加多个“合作伙伴”。如何做到这一点?有什么想法吗?
现在Nova为我提供了在“费率”下创建多个新合作伙伴的选项,但不将现有的合作伙伴附加到“费率”上。
答案 0 :(得分:1)
您不能对HasMany附加任何内容。 https://github.com/laravel/nova-issues/issues/520
有问题/要求当前可能的解决方案是将BelongsToMany与数据透视表一起使用。