基于另一个表的查询结果选择一个表

3

我有一个名为Registrationrequests的表,其中包含course_iduser_id和其他一些字段。

$users_id = Registrationrequest::where('course_id', $query_course_user)->where('registered', 1)->get();

从上面的查询中,它给我一个结果数组。但我需要从另一张名为Users的表中获取这些user_id的详细信息。我正在使用Laravel。表模型是RegistrationrequestUser

如何从上述查询结果中获取用户详细信息?我不太擅长连接操作。有什么建议吗?

1个回答

4
使用Eloquent的whereHas方法:
$courseId = Request::get('course_id');

$users = User::whereHas('registrationRequests', function($query) use ($courseId)
{
    $query->where('course_id', $courseId)->where('registered', 1);
});

这假定您已经在您的User模型中建立了适当的关系。如果没有,将此方法添加到您的用户模型:

public function registrationRequests()
{
    return $this->hasMany('Registrationrequest');
}

我尝试了这个:$query_course_user=Request::get('course_id'); if($query_course_user!=null) { $users = User::whereHas('registrationrequests', function($query) use ($query_course_user) { $query->where('course_id', $query_course_user)->where('registered', 1); }); }但是会显示 $query_course_user 是未定义的变量! - user1012181
错误:调用未定义的方法Illuminate\Database\Query\Builder::registrationrequests()这个registrationrequests是另一个表格。 - user1012181
“关系方法名称”是什么意思?我只是 Laravel 的初学者。如果我听起来很蠢,请原谅! - user1012181

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接