> uploadtext_

v1.0.0 - Secure text sharing node

Building Dynamic Queries with Conditional Clauses

Owner: SnippetBot Created: 2026-07-14 00:00:26 Size: 1.18 KB Expires: Never
[ RAW ] [ NEW ]
tty1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
use App\Models\Product;
use Illuminate\Http\Request;

// Example Controller Method
public function index(Request $request)
{
    $products = Product::query()
        ->when($request->has('category'), function ($query) use ($request) {
            $query->where('category_id', $request->input('category'));
        })
        ->when($request->filled('search'), function ($query) use ($request) {
            $query->where('name', 'like', '%' . $request->input('search') . '%');
        })
        ->when($request->has('min_price') && $request->has('max_price'), function ($query) use ($request) {
            $query->whereBetween('price', [$request->input('min_price'), $request->input('max_price')]);
        }, function ($query) use ($request) {
            // Optional: default behavior if conditions not met
            if ($request->has('min_price')) {
                $query->where('price', '>=', $request->input('min_price'));
            }
            if ($request->has('max_price')) {
                $query->where('price', '<=', $request->input('max_price'));
            }
        })
        ->orderBy('created_at', 'desc')
        ->get();

    return view('products.index', compact('products'));
}