2014-11-24 2 views
0

Я новичок в Laravel и задаюсь вопросом о объединении двух результатов JOIN.Laravel - Объединить данные JOIN с одним результатом

В первой, у меня есть следующие таблицы:

видео: идентификатор, утвержденные

videos_languages: Video_id, LANGUAGE_ID, имя

Теперь я делаю следующее:

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

Затем я передаю массив на мой взгляд.

Я получаю значения, но теперь имеют двойные результаты, если одно видео имеет более одного языка. Возможно ли совместить результаты этого соединения с Laravel в одном результате?

Пример:

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

$arr[0]['videos_langauges][1] = 
{ 
    'name' = ... 
} 

Спасибо :)

+0

Вы можете группировать по id, тогда, конечно, языки могут быть опущены, если видео имеет более одного. – user2094178

ответ

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

Это должно очистить дубликаты из результатов. Также обратите внимание на where() вместо whereRaw().

Смежные вопросы