Laravel-将JOIN数据合并为一个结果


Laravel - Combine JOIN data to one result

我是Laravel的新手,对合并2个JOIN结果有疑问。

首先,我有以下表格:

视频:ID,已批准

videos_languages:video_id、language_id、名称

现在我执行以下操作:

$arr = Video::join("videos_languages","video_id","=","videos.id")->whereRaw("approved = 0")->get();

然后我将数组传递给我的视图。

我得到了这些值,但如果一个视频有超过 1 种语言,现在有双倍结果。是否有可能将与Laravel联接的结果合并为一个结果?

例:

$arr[0]['id'] = 5;
$arr[0]['approved'] = 0;
$arr[0]['videos_langauges][0] =
{
  'name' = ...
}
$arr[0]['videos_langauges][1] =
{
  'name' = ...
}

谢谢:)

$arr = Video::distinct()->join("videos_languages","video_id","=","videos.id")->where("approved", 0)->get();

这应该会清除结果中的重复项。另请注意where()而不是whereRaw()