我有一个laravel应用程序,我有以下型号
- 研讨会
- WorkshopCategory
我有3张桌子,
- 研讨会
- 车间_类别
- 车间_类别_相关性
我正试图用雄辩的方式来推出我所有的研讨会,相关类别如下:
{
"id":14,
"workshop_name":"First Workshop",
"description":"Located all over",
"categories": array: [
0 => "wood"
1 => "metal"
]
}
实现这一目标的最佳方法是什么?我能在我的车间模型中添加以下内容吗:
public function categories()
{
return $this->belongsToMany('App'Workshopcategory', 'workshop_category_relation', 'workshop_id', 'category_id');
}
我已经将上述功能添加到我的车间模型中,当我尝试输出以下车间时:
$workshop = Workshop::FindOrFail(14);
return $workshop->categories();
我得到以下错误:
类对象Illuminate''Database''Eloquent''Relations''BelongToMany无法转换为字符串
我认为您只是在寻找多对多关系。
您所需要做的就是将workshop_category_relation
表重命名为"workshop_tegory",然后belongsToMany
就可以工作了。
当您调用:时
return $workshop->categories()->get();
或者只是:
return $workshop->categories;
你会得到一个与研讨会相关的类别的Collection
,然后你可以提交如下:
foreach($workshop->categories as $category) {
$category->field_name
}