Laravel Query Builder: Conditional Clauses

$role = $request->input('role');

$users = DB::table('users')
                ->when($role, function ($query, $role) {
                    return $query->where('role_id', $role);
                })
                ->get();
$sortBy = null;

$users = DB::table('users')
                ->when($sortBy, function ($query, $sortBy) {
                    return $query->orderBy($sortBy);
                }, function ($query) {
                    return $query->orderBy('name');
                })
                ->get();

Laravel Query Builder: Conditional Clauses — Structure map

Clickable & Draggable!

Laravel Query Builder: Conditional Clauses — Related pages: