laravel 5,具有多个值的 where 子句
laravel 5, where clause with multiple values
我想将所有 $id 值传递给 where 子句,下面代码的第 3 行。但是当我尝试 return $friend 时,它是空的。我是否错误地处理了 $id 值?或者我在查询中弄错了?我检查了我的数据库,它应该 return 2 行。
我还通过 return 检查了 $id,它 return 正是我所期待的,我想我在 $friend 行的查询中弄错了。
$x = user->id;
$id = DB::table('requests')->select('id')->where('id', '=', $x)->get();
$friend = DB::table('users')->where('id', 'in', $id)->get();
您可以在一个查询中完成所有操作:
$friends = DB::table('users')->whereIn('id', function ($query) use ($user) {
$query->select('id')->from('requests')->where('id', $user->id);
})->get();
您需要使用 whereIn()
,也许对整个交易来说更好的选择是:
$ids = DB::table('requests')->where('id', $x)->lists('id');
$friend = DB::table('users')->whereIn('id', $ids)->get();
注意whereIn()的第二个参数需要是数组
您想要的是 whereIn
(向下滚动一点)。也可以使用 whereNotIn
.
$userIds = [1, 2, 3];
$friend = DB::table('users')->whereIn('id', $userIds)->get();
或whereNotIn
:
$userIds = [1, 2, 3];
$friend = DB::table('users')->whereIn('id', $userIds)->get();
查看 Laravel 查询生成器支持的所有可能的高级 where 子句。
我想将所有 $id 值传递给 where 子句,下面代码的第 3 行。但是当我尝试 return $friend 时,它是空的。我是否错误地处理了 $id 值?或者我在查询中弄错了?我检查了我的数据库,它应该 return 2 行。
我还通过 return 检查了 $id,它 return 正是我所期待的,我想我在 $friend 行的查询中弄错了。
$x = user->id;
$id = DB::table('requests')->select('id')->where('id', '=', $x)->get();
$friend = DB::table('users')->where('id', 'in', $id)->get();
您可以在一个查询中完成所有操作:
$friends = DB::table('users')->whereIn('id', function ($query) use ($user) {
$query->select('id')->from('requests')->where('id', $user->id);
})->get();
您需要使用 whereIn()
,也许对整个交易来说更好的选择是:
$ids = DB::table('requests')->where('id', $x)->lists('id');
$friend = DB::table('users')->whereIn('id', $ids)->get();
注意whereIn()的第二个参数需要是数组
您想要的是 whereIn
(向下滚动一点)。也可以使用 whereNotIn
.
$userIds = [1, 2, 3];
$friend = DB::table('users')->whereIn('id', $userIds)->get();
或whereNotIn
:
$userIds = [1, 2, 3];
$friend = DB::table('users')->whereIn('id', $userIds)->get();
查看 Laravel 查询生成器支持的所有可能的高级 where 子句。