Mam dwa modele, które są powiązane. Próbuję wyszukać w Produktach i wyświetlać rzeczywiste wyniki wyszukiwania zamiast WSZYSTKICH produktów z kategorii, w której produkt został znaleziony. NIE chcę wyszukiwać żadnych kategorii, ponieważ kategorie będą ZAWSZE wyświetlane bez względu na to, co było wyszukiwane i bez względu na to, co zostało znalezione.Laravel Search Relationship
Example. I have the following categories:
- Food
- Drinks
- Candy
My "Food" category has the following products:
- Strawberry
- Apple
- Banana
My "Drinks" category has the following products:
- Banana Cocktail
- Beer
- Cola
My "Candy" category has the following products:
- Strawberry Lollipop
- Chocolate Bar
- Banana Ice Cream
A więc CHCĘ osiągnąć to co następuje. Szukam produktu o nazwie "Banan". Co chcę być wyświetlane jest:
Category Food
- Product Banana
Category Drinks
- Product Banana Cocktail
Category Candy
- Product Banana Ice Cream
Ale mój problem jest z mojego kodu, jeśli mogę przeprowadzić wyszukiwanie dla „banan”, wyświetla kategorię, w której znajduje się banan, i zwraca i wyświetla wszystkie produkty w tej kategorii zamiast TYLKO produktów, których szukałem. Jak mogę to osiągnąć, aby wyświetlały się tylko te produkty, które były wyszukiwane?
Kategorie Model:
class Categories extends Eloquent {
public function products()
{
return $this->hasMany('Products');
}
}
Produkty Model:
class Products extends Eloquent {
public function categories()
{
return $this->belongsTo('Categories');
}
}
My Kontroler:
$searchString = Input::get('search');
if($searchString)
{
$categories = Categories::with('products')->orderBy($order, $by)->whereHas('products', function ($query) use ($searchString){
$query->where('name', 'like', '%'.$searchString.'%');
})->get();
}
else {
$categories = Categories::with('products')->orderBy($order, $by)->get();
}
moim zdaniem:
@foreach($categories as $category)
{{ $category->name }} // Show the category name
@foreach($category->products as $product)
{{ $product->name }} // Show all products in that category
@endforeach
@endforeach
Jakie są pożądane wyniki? Jak w przypadku, gdy "Przykład" należy do "Kategorii 1", "Kategoria 2" i "Kategoria 3", w jaki sposób ma wyglądać wydruk? – Ymartin
Przepraszam, ale nie bardzo rozumiem, co chcesz uzyskać z zapytania, listę kategorii lub listę produktów? –
Zaktualizowałem moje pytanie, aby wyjaśnić to lepiej :) Chcę wyświetlić listę kategorii, w tym produkty, które są powiązane z tą kategorią. – Hardist