有没有办法使用查询构建器在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 )
HI @Qazi,我将如何实现这一目标? select * from accounts where id ='120' – Juan
@Juan根据我的研发你不能实现参数值吗?,所有你得到的参数列表。 – Qazi
有没有解决它的方法? – Juan