我想显示一个查询,而不使用Eloquent执行它。我想写这样的:如何显示查询而不执行它与雄辩
\DB::table('my_table')-> updateOrInsert(['a' => 'b'], ['c' => 'd']);
这是一个生产行动,所以我有点直接运行它的压力。有没有办法显示它而不是运行它?
我想显示一个查询,而不使用Eloquent执行它。我想写这样的:如何显示查询而不执行它与雄辩
\DB::table('my_table')-> updateOrInsert(['a' => 'b'], ['c' => 'd']);
这是一个生产行动,所以我有点直接运行它的压力。有没有办法显示它而不是运行它?
如果您有查询构建器实例,则可以使用toSql()
。由于updateOrInsert()
方法不会返回构建器实例,因此无法以此方式阻止其执行。相反,您可以将查询放入DB::pretend()
闭包中,并且它应该返回它将执行的查询。
\DB::pretend(function() {
\DB::table('my_table')->update(['a' => 'b']);
});
应返回:
[
[
"query" => "update `my_table` set `a` = ?",
"bindings" => [
"b",
],
"time" => 0.01,
],
]
注意:您所提供永远不会因为insertOrUpdate()
工作的例子并不存在。我相信你正在寻找updateOrInsert()
谢谢!编辑! –