我创建了 3 个表 users、meeting 和 request 如何获取请求会议的用户?

I created 3 tables users, meeting and request how to get the users who requested a meeting?

我创建了 3 个 tables:与 tables 都有关系的用户、会议和请求,对于 ID 为 3 的页面 meeting/3 会议,我想显示在request table:

中提交请求的所有用户

用户: 用户 ID 姓名

会议: 会议 ID 名字

要求: 要求 ID meeting_id request_id

$requests = App\Requests::all();
                            foreach ($requests as $request)
                            {
                                $user = App\User::where('id', $request->user_id)->first();
                                echo $user->name . '<br>';
                            }

这显示了用户但未按会议 ID 过滤

如何从请求中有记录的会议页面获取用户table?

我假设 reuqests table 中的 request_id 作为来自用户 table 的外键。

查询应该是。

select u.users from users as u inner join requests as r on u.id=r.request_id where r.meeting_id=3;

此查询连接两个 table(usersrequests)并获取给定 meeting_id.

的结果

好的,如果我错了请纠正我。 您想要从数据库中检索所有用户对 ID = 3 的会议的请求。

试试:

$requests = App\Requests::where('meeting_id', 3)->get();
foreach($requests as $request){
    echo $request->user->name;
    echo '<br>';
}

并且在您的模型中,您应该设置一些关系,例如:

在您的用户模型中:

public function requests(){
    return $this->hasMany('App\Request');
}

在您的请求模型中:

public function user(){
    return $this->belongsTo('App\User');
}

您还可以执行以下操作:

$meeting = App\Meeting::find(3);
$users = $meeting->users;

如果您正确设置模型之间的关系,这将允许您直接检索已提交该会议请求的用户。

查看laravel关于关系的文档:laravel relationships

$requests = App\Requests::where('meeting_id', 3)->get();

foreach($requests as $request){
    echo $request->user->name;
    echo '<br>';
    echo $request->accepted;
    echo '<br>';
}