Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

nafeeur10's avatar

Query is giving unexpected data in Eloquent Laravel

My data example is given below:

{
     "id": 2000010,
      "delivery_name": "",
      "delivery_mobile": "",
       "delivery_address": ""
 },
 {
       "id": 2000007,
       "delivery_name": "Monjurul Islam",
        "delivery_mobile": "",
        "delivery_address": "Badda, Dhaka"
 },

This is coming from Database.

I am searching data using Query String with parameter. That code is:

public function getResult() {
$order_id = $orderSearch->getOrderId();
$query_string = $orderSearch->getQueryString();

$queryOrderList = Order::when($order_id, function ($query) use ($order_id) {
            return $query->where('id', $order_id);
        })->when($query_string, function ($query) use ($query_string){
            return $query->where('delivery_name', 'LIKE', '%'.$query_string.'%')
                         ->orWhere('delivery_mobile', 'LIKE', '%'.$query_string.'%')
                         ->orWhere('delivery_address', 'LIKE', '%'.$query_string.'%');
        });
return $queryOrderList->offset($offset)->limit($limit)->latest()->get();
}

While I am searching something similar to delivery_name it is not giving any data. But for others it is working fine.

0 likes
3 replies
SilenceBringer's avatar
Level 55

@nafeeur10 possible the problem is in grouping. try

->when($query_string, function ($query) use ($query_string) {
    $query->where(function ($whereQuery) use ($query_string) {
        $query->where('delivery_name', 'LIKE', '%'.$query_string.'%')
            ->orWhere('delivery_mobile', 'LIKE', '%'.$query_string.'%')
            ->orWhere('delivery_address', 'LIKE', '%'.$query_string.'%');
    });
});
1 like

Please or to participate in this conversation.