hcan En basitinden bir tane builder dönen sınıf oluşturun:
class UsersQuery
{
public function __construct(Request $request)
{
return User::when($request->filled('status'), function($query) use ($request) {
$query->where('status', $request->boolean('status'));
})
->when($request->input('age'), function($query, $age) {
return $query->whereIn('age', explode(',', $age));
});
}
}
Controller içinde
public function index(Request $request)
{
$users = (new UsersQuery($request))->paginate();
return view('users.index', compact('user'));
}
Ben şu paketi kullanıyorum tavsiye ederim:
https://spatie.be/docs/laravel-query-builder/v3/introduction