我有一个SQL查询:
select `id` from `users` where ( select count(*) from `user_event` as `uev` where `uev`.`leader_id` = `users`.`id` ) > 1
我如何将其转换为Eloquent Laravel?
假设您已设置关系,您可以使用 has() 方法:
has()
$users = User::select('id')->has('events', '>', 1)->get();
如果你想要一个用户ID数组(因为你只选择了id),你也可以使用 lists() :
lists()
$ids = User::has('events', '>', 1)->lists('id');
既然你问过,这将是一种替代方法(虽然未经过测试)
User::where(DB::raw('1'), '<', function($q){ $q->from('user_event') ->where('user_event.leader_id', 'users.id'); })->get();
1 回答
假设您已设置关系,您可以使用
has()
方法:如果你想要一个用户ID数组(因为你只选择了id),你也可以使用
lists()
:既然你问过,这将是一种替代方法(虽然未经过测试)