Есть модель Category и модель Product. Между этими моделями связь многие-ко-многим. На странице категории мы получаем все товары этой категории и к каждому товару все его категории.
Пример.
$category->type
$category->name
@foreach ($category->products as $product)
$product->name
@foreach ($product->categories as $category)
$category->type
$category->name
@endforeach
@endforeach
На выходе получаем.
Manufacturer
Alize
Alize Lana Gold
Manufacturer
Alize
Country
Turkey
Fiber
Acrylic
Каждая категория имеет свой тип. Например: Country, Manufacturer или Fiber. Категория страны, производителя или состава. Country и Manufacturer у товара всегда один, а вот Fiber может быть много.
Можно ли как-то пересобрать (не знаю как правильно сказать) коллекцию, чтобы товар возвращался со всеми категория, к которым он принадлежит?
То есть, чтобы можно было сделать так.
$category->type
$category->name
@foreach ($category->products as $product)
$product->country // категория
$product->manufacturer // категория
$product->name
@foreach ($product->fibers as $fiber) // категория
$fiber->name
@endforeach
@endforeach
Мы явно пишем Country, Manufacturer и только Fiber перебираем в массиве т.к у товара может быть много категорий этого типа.