我有一些查询需要使用查询生成器传递给另一个查询
$query = DB::table('table')->whereIn('some_field', [1,2,30])->toSql();
Model::join(DB::raw("({$query}) as table"), function($join) {
$join->on('model.id', '=', 'table.id');
})
这应该导致Select * from model join (select * from table where some_field in (1,2,30)) as table on model.id = table.id
但是绑定(bind)没有通过,这迫使我做$query = DB::table('table')->whereRaw('some_field in ('. join(',', [1,2,30]) .')')->toSql();
有时可能不安全。如何使用绑定(bind)获取查询?
最佳答案
Laravel 现在可以直接在你的 Builder 上进行调试!!!
https://laravel.com/docs/queries#debugging
\App\User::where('age', '18')->dump();
\App\User::where('age', '18')->dd();
输出
"select * from `users` where `age` = ?"
[
0 => "18"
]
关于Laravel如何通过绑定(bind)获取查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27314506/