📅  最后修改于: 2023-12-03 15:32:34.006000             🧑  作者: Mango
在Laravel中,我们可以使用闭包函数来编写更复杂,更灵活的 where 查询语句。在本文中,我们将学习如何使用 where 闭包函数来查询数据库。
$users = DB::table('users')
->where(function ($query) {
$query->where('name', '=', 'John')
->orWhere('name', '=', 'Jane');
})
->get();
在上面的示例中,我们使用了闭包函数来编写一个 WHERE
子句,其中我们查询了名字为 John
或 Jane
的用户。闭包函数以查询构建器实例作为参数,并且可以在该实例上调用其他查询构建器方法,例如 orWhere
或 whereIn
。
$users = DB::table('users')
->where(function ($query) {
$query->where('name', '=', 'John')
->orWhere('name', '=', 'Jane');
})
->where(function ($query) {
$query->where('age', '>', 18)
->where('age', '<', 30);
})
->get();
在上面的示例中,我们查询名字为 John
或 Jane
,并且年龄在 18 到 30 之间的用户。
$users = DB::table('users')
->where(function ($query) {
$query->whereIn('id', function($query) {
$query->select('user_id')
->from('votes')
->where('created_at', '>', '2021-01-01');
})
->orWhere('name', '=', 'admin');
})
->get();
在上面的示例中,我们查询所有在 2021 年 1 月 1 日之后投票的用户,或者名字为 admin
的用户。
$users = DB::table('users')
->where(function ($query) {
$query->where('name', '=', 'John')
->orWhere('name', '=', 'Jane');
})
->where(function ($query) {
$query->where('age', '>', 18);
})
->orWhere(function ($query) {
$query->where('name', '=', 'admin')
->where('age', '>', 30);
})
->get();
在上面的示例中,我们查询名字为 John
或 Jane
且年龄大于 18,或者名字为 admin
且年龄大于 30 的用户。
使用 where 闭包函数的优点是可以进行更复杂的查询,将多个条件嵌套在一起以便符合条件的结果。请熟悉和使用闭包,以便为您的应用程序提供更强大和灵活的查询。