SparkyToster
@SparkyToster
PHP (Laravel) developer, student, human being.

Как из полученной коллекции от hasMany() получить еще одну, но по другой таблице?

Доброго времени суток! Начал изучать Laravel (v5.8).
У меня есть 3 таблицы: 1) audiences 2) devices 3) device_audiences
1) 5cd088315a1c6415333251.png
2) 5cd08853dc53e580689683.png
3) 5cd08873192d5093442691.png
Мне нужно на странице аудитории вывести список девайсов, которые есть в ней. Делаю в модели Audience:
public function devices()
{
    $this->hasMany(DeviceAudience::class);
}

— получаю коллекцию из таблицы связей аудитории и девайсов, но мне из этой коллекции нужно вернуть другую, уже конкретно по таблице девайсов. Как это делается? Спасибо.
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
@jazzus
В модели Audience
public function devices() {
      return $this->belongsToMany('App\Models\Device', 
                              'device_audiences', 
                              'audience_id', 
                              'device_id')->withPivot('amount');
}

Получаете в контроллере приборы аудитории
$devices = Audience::find($id)->devices;
Остальные аналогично
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы