Я использую SQLite с моим приложением Laravel и пытаюсь запустить запрос whereHas
:
$payments = Payment::whereHas('payers', function($q){ $q->where('user_id', '=', 1); })->get();
Это возвращает пустой результат и связано с тем, что целое число 1 передается в строку, о чем свидетельствует результирующий запрос, генерируемый laravel / eloquent:
select * from "payments" where (select count(*) from "payers" inner join "payer_payment" on "payers"."id" = "payer_payment"."payer_id" where "payer_payment"."payment_id" = "payments"."id" and "user_id" = 1) >= '1'
Просмотрев эту проблему github, я попытался использовать DB::raw
так:
$payments = Payment::whereHas('payers', function($q){ $q->where('user_id', '=', DB::raw(1)); })->get();
Но никакого улучшения. Как я могу исправить это без изменения драйвера базы данных?