Задать вопрос
MiragePresent
@MiragePresent
программист php

Eloquent. Показать запрос без «?», а подставленными значениями?

Здравствуйте. Как в 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
  • Вопрос задан
  • 489 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
Denormalization
@Denormalization
Можно перед запросом написать DB::enableQueryLog(), а после запроса сделать dd(DB::getQueryLog())
Это покажет все запросы + данные которые использовались (данные отдельно будут).
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Можно еще Laravel Debugbar поставить - очень удобный отладчик и не только для sql запросов.
Ответ написан
Комментировать
yurgengoa
@yurgengoa
web dev
альтернативно смотреть все запросы через

https://github.com/itsgoingd/clockwork-chrome
Ответ написан
Комментировать
AmdY
@AmdY
PHP и прочие вебштучки
А почему вы не хотите воспользоваться ORM, а юзаете просто квери билдер от него? Он бы вернул вам красивый объект, а не дичь после джойна.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы