Im Blick habe ich zwei foreach
: erste gibt alle Kategorien, die zweite, sollte jede Marke aus aktuelle Kategorie ausgeben.So implementieren Sie eine solche Anfrage an DB
Beispiel:
// Controller
$categories = DB::table('products')
->join('categories', 'products.c_id', '=', 'categories.id')
->select('categories.name as cat')
->groupBy('categories.name')
->get();
$brands = DB::table('products')
->join('categories', 'products.c_id', '=', 'categories.id')
->join('brands', 'products.b_id', '=', 'brands.id')
->select('brands.name as brand')
->where('categories.id', '=', '1')<-- the problem part
->groupBy('brands.name')
->get();
//view
@foreach($categories as $category)
<li><a>{{ $category->cat}}</a>
<ul class="sort-section">
<li><a href="#"><strong>All {{$category->cat}}</strong></a></li>
@foreach($brands as $brand)
<li><a href="#">{{ $brand->brand }}</a></li>
@endforeach
</ul>
</li>
@endforeach
Ich weiß nicht, wie man es richtig ausgegeben. Im Moment bekomme ich Aufzeichnungen, where categories.id = 1
(ich habe es getan, um zu überprüfen, ob mein Code überhaupt funktioniert), aber anstelle von 1
sollte ich id
von aktuellencategory
verwenden. Mit anderen Worten, wenn ich es gerne machen würde, egal was passiert, würde ich die zweite Anfrage aus meiner Sicht in foreach
implementieren (was verrückt ist).
Irgendwelche Vorschläge?
Nur so verstehe ich die Frage, wollen Sie die Liste der Marken angezeigt werden nur diejenigen, die mit der Auswahl verbunden sind Ed-Kategorie? – Birdman
@Birdman Ja, das ist der schwierigste Teil für mich: Während der ersten 'foreach' bekomme ich Werte von Kategorien. Und für jede Kategorie muss ich verschiedene Marken bekommen. das ist der 'wo' Teil in der zweiten Abfrage – newbie