First off, all methods start with lowercase letters like where()and whereHas()
Secondly, I suggest installing debug bar or clockwork, to see the actual query timing, and what the query looks like.
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
I am trying to achieve the following code, my ajax is taking more than 1.50 minutes to respond, please guide me where I am going wrong
$members = (new Member)->newQuery();
$members->with('address');
if ($request->filled('search')) {
$search = $request->search;
$members->where(function ($q) use ($search) {
$q
->Where('name', 'LIKE', '%' . $search . '%')
->orWhere('mode_of_transport', 'LIKE', '%' . $search . '%')
->orWhereHas('address', function ($query) use ($search) {
return $query->where('street_address', 'like', '%' . $search . '%');
});
});
}
when I split these two into individual code as follows I am getting responses in 500 -800 ms so i don't think issue is of n+1 or indexing
// response in 800 ms
$members->WhereHas('address', function ($query) use ($search) {
return $query->where('street_address', 'like', '%' . $search . '%');
});
// response in 500 ms
$members->Where('name', 'LIKE', '%' . $search . '%')
->orWhere('mode_of_transport', 'LIKE', '%' . $search . '%');
Thanks in advance
Please or to participate in this conversation.