雄辩的关系 - 查询行到列

时间:2015-01-28 01:40:48

标签: php mysql laravel relational-database eloquent

我有三张桌子:

  • 用户{ id ,first_name,last_name}
  • 申请人{ id ,first_name, last_name ......}
  • 标记{ ID applicant_id user_id ,标记}

标记包含两个外键(applicant_id和user_id)。所以,逻辑是这样的:有很多申请人和一些用户。用户需要审查每个申请人并为他设置一些标记。

所需的输出是显示(几乎)表“申请者”中的所有列(属性),并为表“users”中的每一行附加另一个,其中 users.last_name 在“标题”中,以及该申请人的“正文”中的所需标记。

我在这个应用程序中使用Laravel和Eloquent,并且不知道如何实现这个目标。

1 个答案:

答案 0 :(得分:1)

定义这种关系:

class Applicant extends Eloquent {
    public function users(){
        return $this->belongsToMany('User', 'marks')->withPivot('mark');
    }
}

用法:

$applicants = Applicant::with('users')->get();
foreach($applicants as $applicant){
    echo $applicant->first_name; // etc...
    foreach($applicant->users as $user){
        echo $user->last_name;
        echo $user->pivot->mark;
    }
}