我有三个表:
- 用户{id、名字、姓氏}
- 申请人{id、first_name、 姓氏......}
- 标记 {id、applicant_id、user_id、mark}
表marks包含两个外键(applicant_id 和 user_id)。所以,逻辑是这样的:申请者多,用户少。用户需要对每一个申请者进行审核,并为他设置一些分数。
期望的输出是显示表“applicants”中的(几乎)所有列(属性),并为表“users”中的每一行附加另一个列,其中包含users.last_name 在“标题”中,并在“正文”中为该申请人添加所需的标记。
我在此应用程序中使用 Laravel 和 Eloquent,但不知道如何实现这一目标。
最佳答案
定义这种关系:
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;
}
}
关于php - Eloquent 关系 - 查询行到列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28183245/