有没有办法使用查询构建器在laravel雄辩中显示值而不是(?)?

问题描述:

我使用雄辩查询生成器来为我生成原始的SQL。我的目标是返回一个SQL查询这样有没有办法使用查询构建器在laravel雄辩中显示值而不是(?)?

select * from accounts where id = '120' 

现在我试图

$query = \App\Account::query(); 
$query = $query->where('id', 120); 
dd($query->toSql()); 

输出:

select * from `accounts` where `id` = ? 

有显示,因为值,而不是一个办法(?)这不是对我正在使用的第三方API的有效查询。 我期待在我给出的第一个例子上产生一个查询。

注意:我不查询我的数据库,我将使用该原始查询传递第三方API。我想要的只是生成一个原始的SQL。任何建议,将不胜感激。谢谢!

找到了一个解决方案打印参数值,也许它可以帮助别人有同样的问题我。

您可以检查此链接:https://gist.github.com/JesseObrien/7418983

public function getSql() 
{ 
    $builder = $this->getBuilder(); 
    $sql = $builder->toSql(); 
    foreach($builder->getBindings() as $binding) 
    { 
     $value = is_numeric($binding) ? $binding : "'".$binding."'"; 
     $sql = preg_replace('/\?/', $value, $sql, 1); 
    } 
    return $sql; 
} 

是的,你可以通过使用getBindings()

print_r($query->getBindings()); 
Array 
(
    [0] => instructor 
    [1] => 1 
) 
+0

HI @Qazi,我将如何实现这一目标? select * from accounts where id ='120' – Juan

+0

@Juan根据我的研发你不能实现参数值吗?,所有你得到的参数列表。 – Qazi

+0

有没有解决它的方法? – Juan