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()
ありがとう!編集されました! –