diff --git a/beike/Repositories/ProductRepo.php b/beike/Repositories/ProductRepo.php index b4cab717..2520cb46 100644 --- a/beike/Repositories/ProductRepo.php +++ b/beike/Repositories/ProductRepo.php @@ -98,7 +98,6 @@ class ProductRepo if (isset($data['model'])) { $query->where('model', 'like', "%{$data['model']}%"); } - }); } @@ -108,6 +107,18 @@ class ProductRepo }); } + $keyword = $data['keyword'] ?? ''; + if ($keyword) { + $builder->where(function (Builder $query) use ($keyword) { + $query->whereHas('skus', function (Builder $query) use ($keyword) { + $query->where('sku', 'like', "%{$keyword}%") + ->orWhere('model', 'like', "%{$keyword}%"); + })->orWhereHas('description', function ($query) use ($keyword) { + $query->where('name', 'like', "%{$keyword}%"); + }); + }); + } + if (isset($data['active'])) { $builder->where('active', (int)$data['active']); } diff --git a/beike/Shop/Http/Controllers/ProductController.php b/beike/Shop/Http/Controllers/ProductController.php index 0889938f..6ec86f63 100644 --- a/beike/Shop/Http/Controllers/ProductController.php +++ b/beike/Shop/Http/Controllers/ProductController.php @@ -35,7 +35,7 @@ class ProductController extends Controller public function search(Request $request) { $keyword = $request->get('keyword'); - $products = ProductRepo::getBuilder(['name' => $keyword])->where('active', true)->paginate(); + $products = ProductRepo::getBuilder(['keyword' => $keyword])->where('active', true)->paginate(); $data = [ 'products' => $products,