Здравствуйте. Как в Eloquern показать запрос без "?", а подставленными значениями?
Т.е. если выводить запрос с помощью функции toSql(), то она вместо подставленных значений where указывает
?
.
Например у меня есть запрос, который правильно формируется, но почему-то не работает.
Работает:
select *
from `users`
inner join `pro_payments`
on `users`.`id` = `pro_payments`.`user_id`
and (`pro_payments`.`start` < NOW()
and `pro_payments`.`end` > NOW()
and `pro_payments`.`active` = 1
)
where `group_id` = 2
and `users`.`deleted_at` is null
В ORM:
public function scopeWithPayment($query){
return $query->join('pro_payments', function($join){
$join->on('users.id', '=', 'pro_payments.user_id')
->where(function($sql){
$sql->where('pro_payments.start', '<', DB::raw('now()'))
->where('pro_payments.end', '>', DB::raw('now()'))
->where('pro_payments.active', '=', 1);
});
});
}
public function scopeProviders($query){
return $query->where('group_id', 2);
}
В результате (не работает):
User::providers()->withPayment()->toSql()
select * from `users` inner join `pro_payments` on `users`.`id` = `pro_payments`.`user_id` and (`pro_payments`.`start` < ? and `pro_payments`.`end` > ? and `pro_payments`.`active` = ?) where `group_id` = ? and `users`.`deleted_at` is null