Tôi có hai mô hình có liên quan. Tôi đang cố thực hiện tìm kiếm trong Sản phẩm và chỉ hiển thị kết quả tìm kiếm thực tế thay vì TẤT CẢ các sản phẩm thuộc danh mục mà sản phẩm được tìm thấy. Tôi KHÔNG muốn tìm kiếm bất kỳ danh mục nào, vì các danh mục sẽ luôn được hiển thị bất kể nội dung nào được tìm kiếm và bất kể nội dung nào được tìm thấy.Mối quan hệ Tìm kiếm Laravel
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
Vì vậy, những gì tôi muốn đạt được là như sau. Tôi thực hiện tìm kiếm sản phẩm có tên "Chuối". Những gì tôi muốn được hiển thị là:
Category Food
- Product Banana
Category Drinks
- Product Banana Cocktail
Category Candy
- Product Banana Ice Cream
Nhưng vấn đề của tôi là, với mã của tôi, nếu tôi thực hiện tìm kiếm cho "chuối", nó sẽ hiển thị các loại, trong đó chuối được tìm thấy, và nó sẽ trả về và hiển thị tất cả các sản phẩm trong danh mục đó thay vì CHỈ các sản phẩm mà tôi đã tìm kiếm. Làm thế nào tôi có thể đạt được nó để chỉ các sản phẩm được tìm kiếm mới được hiển thị?
Categories mẫu:
class Categories extends Eloquent {
public function products()
{
return $this->hasMany('Products');
}
}
Sản phẩm mẫu:
class Products extends Eloquent {
public function categories()
{
return $this->belongsTo('Categories');
}
}
điều khiển của tôi:
$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();
}
Xem của tôi:
@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
Sản lượng mong muốn của bạn là gì? Như trong ví dụ "" thuộc về "Danh mục 1", "Danh mục 2" và "Danh mục 3", bạn muốn đầu ra xuất hiện như thế nào? – Ymartin
Xin lỗi nhưng tôi không hoàn toàn hiểu bạn muốn nhận được gì từ truy vấn của mình, danh sách Danh mục hoặc danh sách Sản phẩm? –
Tôi đã cập nhật câu hỏi của mình để giải thích rõ hơn :) Tôi muốn hiển thị danh sách các danh mục bao gồm các sản phẩm được liên kết với danh mục đó. – Hardist