Laravel如何通过绑定(bind)获取查询?

标签 laravel eloquent

我有一些查询需要使用查询生成器传递给另一个查询

$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/

相关文章:

Laravel Eloquent 查询,带有可选参数

php - Laravel Eloquent 和命名空间问题

laravel - 在 Laravel 字符串验证中避免使用 html 标签

php - Laravel 4 路由组前缀中的变量

带有条件语句的 Laravel Eager Load

laravel - 在 Laravel 中检索 updated_at 不早于 X 秒的记录( Eloquent )

mysql - 转为 Eloquent

php - 自动为 laravel 模型中的字段赋值

php - Laravel 如何在 Controller 中使用 create 函数添加记录?

mysql - Laravel Eloquent 2 中的 created_at 和 modified_at 应该使用什么类型的列?