Laravel Many to Many


Laravel Many to Many

我有一个laravel应用程序,我有以下型号

  1. 研讨会
  2. 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
}