public function searchLaptops(Request $request)
{
$brands = Brand::all();
$laptops = Product::query();
if ($request->latestPopular == 'latest') {
$laptops->orderBy('id', 'desc');
}
if ($request->latestPopular == 'popular') {
$laptops->select('products.*')
->selectSub(
'SELECT AVG(rating) FROM ratings WHERE product_id = products.id',
'average_rating'
)
->orderBy('average_rating', 'desc');
}
if ($request->query('name')) {
$laptops->where('name', 'like', '%' . $request->query('name') . '%');
}
if ($request->query('min')) {
$laptops->where('discount_price', '>=', $request->query('min'));
}
if ($request->query('max')) {
$laptops->where('discount_price', '<=', $request->query('max'));
}
if ($request->query('brand_id')) {
$laptops->where('brand_id', $request->query('brand_id'));
}
if ($request->query('condition')) {
if ($request->query('condition') == 'new') {
$laptops->where('condition', 'new');
} else {
$laptops->where('condition', 'second');
}
}
if ($request->query('status')) {
if ($request->query('status') == 'yes') {
$laptops->where('status', 'yes');
} else {
$laptops->where('status', 'no');
}
}
if ($request->query('search')) {
$laptops->where('name', 'like', '%' . $request->query('search') . '%');
}
$laptops = $laptops->paginate(6);
$laptops->appends(request()->all());
return view('users.search_laptops', compact('brands', 'laptops'));
}