Тема: Laravel 5.8. Болюче питання про залежності
Всім привіт! З горем навпіл я розібрався із залежностями Eloquent, але, як показує практика, не до кінця.
Словом, є отака структура даних: https://ibb.co/0G61301
Таблиці files і compositions, а також таблиці files і categories зв'язані між собою методом many-to-many за допомогою pivot-таблиць.
Що потрібно: вивести усі композиції вибраної категорії. Я це пробую зробити отак:
public function showCategory($slug)
{
$category = Category::where('slug', $slug)->first();
$files = $category->files;
foreach ($files as $file) {
$compositions = $file->compositions;
foreach ($compositions as $composition) {
echo $composition->name . '<br />';
}
}
}
Проблема в тому, що якщо кілька різних файлів прив'язані до однієї композиції, то в переліку ця композиція показується кілька разів. Я вже пробував видалити дублі за допомогою PHP-функції array_unique(), але тоді викидає помилку:
array_unique() expects parameter 1 to be array, object given
Переважно я стараюся сам розв'язати проблему, але в даному випадку я застряг уже на кілька днів, тому прошу допомоги. Наперед вдячний за будь-які відповіді!