Truy vấn của bạn không thành công vì bạn đang sử dụng lại các tham số trong truy vấn của mình. Laravel sử dụng PDO cho các truy vấn SQL của nó. Theo tài liệu :
Vì vậy, mặc dù chúng có cùng giá trị, bạn sẽ phải đổi tên các tham số đó.
$results = \DB::select('SELECT client_id,
date_format(start_date,"%d/%m/%Y") as start_date,
date_format(end_date,"%d/%m/%Y") as end_date,
first_name, last_name, phone, postcode
FROM hire INNER JOIN client ON client.id = hire.client_id
where ((:sdate between start_date and end_date OR :edate between start_date and end_date) OR (:sdate2 <= start_date and end_date <= :edate2)) AND car_id = :car_id', [
'sdate' => $start_date,
'sdate2' => $start_date,
'edate' => $end_date,
'edate2' => $end_date,
'car_id' => $car_id
]
);