我有一个products
,teams
和categories
表。我正在尝试将Team
分配给Product
。将Team
分配给该Product
时,他们会为该Category
获得一个或多个Product
。
问题是,在将类别分配给categories
时,我不想从主Team
表中提取。我想从Category
上的关系中填充可用的Product
选项。
目前Product
模型如下:
class Product extends Model
{
public function teams()
{
return $this->belongsToMany(Team::class)->withPivot(['write', 'category_id']);
}
public function categories()
{
return $this->plan_type->categories();
}
}
categories
关系引用了另一个模型,该模型使产品可以使用任意数量的类别。例如:我们有100个可用类别,但是基于分配给此PlanType
的{{1}},可能只有5个Product
可用,因此仅返回那些类别。
在Laravel Nova中,我试图创建一个Category
字段,其中的选项是根据Select
构建的,但是似乎没有办法做到这一点。
我的$product->categories
资源字段:
Product
还有我的枢纽public function fields(Request $request)
{
return [
ID::make()->sortable(),
Text::make('Name'),
BelongsToMany::make('Teams')->fields(new ProductTeamFields),
}
ProductTeamFields
因此,当我单击“附加”时,上面的两个字段会在我的编辑屏幕中正确显示,但无法弄清楚如何获取父表关系来填充此列表。