Car ile Equipment arasında many-to-many ilişkisi kurdunuz:
// Car.php
public function equipments()
{
return $this->belongsToMany(Equipment::class, 'digitalbrain_rentcar_equipment_car', 'car_id', 'equipment_id');
}
Equipment ile EquipmentCategory arasında da one-to-many ilişkisi kurdunuz:
// Equipment.php
public function category()
{
return $this->belongsTo(EquipmentCategory::class, 'equipment_category_id');
}
// EquipmentCategory
public function equipments()
{
return $this->hasMany(Equipment::class, 'equipment_category_id');
}
Bu durumda
@foreach($car->equipments as $equipment)
<p>{{ $equipment->category->name}}</p>
@endforeach
şeklinde donanım kategorisine ulaşabiliyor olmalısınız. Elbette resimdeki gibi bir yapı için başka bir işlem yapmanız gerekecek:
$equipmentCategories = EquipmentCategory::with('equipments')->where('is_active',1)->orderBy('sort_order')->get();
$car = Car::with(['equipments','equipments.category'])->findOrFail(1);
@foreach($equipmentCategories as $category)
@if($car->equipments->where('equipment_category_id',$category->id)->count())
<h2>{{ $category->name }}</h2>
<ul>
@foreach($category->equipments as $equipment)
@if($car->equipments->contains($equipment->id))
<li>{{ $equipment->name }}</li>
@endif
@endforeach
</ul>
@endif
@endforeach
gibi yapılabilir. Test edemediğim için sorun çıkabilir.