我正在尝试将学生数据与组数据一起存储在数组中。例如:groupsid - 1name - P1student_id - 1id - 2name - P1student_id - 2id - 3name - P2student_id - 3在这里我想要这样的门数据[ {name: 'P1', students: [{id: 1, name: 'John'}, {id: 2, name: 'Liza'}]}, {name: 'P2', students: [{id: 3, name: 'Bob'}]},]表:usersid - bigint unsignedname - string...other columns团体id - bigint unsignedname - stringstudent_id...other columnsGroup.php 模型<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Groups extends Model{ public $table = "groups"; public $timestamps = false; public function students(){ return $this->belongsToMany('App\User', 'groups', 'student_id', 'id'); }}用户控制器.phppublic function groupsAdmin(){ return view("groups", ["groups" => Groups::with(['students'])->get()]);}使用此代码,我得到了空的学生数组。
1 回答
眼眸繁星
TA贡献1873条经验 获得超9个赞
它的,belongsToMany 从用户到组,所以它应该是这样的。
您需要另一个表(数据透视表),将其命名为 group_user。
group_user table:-
user_id
group_id
并从 grups 表中完全删除 student_id。
现在转到用户模型并输入此方法:
public function groups()
{
return $this->belongsToMany(Group::class);
}
并转到组模型并输入此代码
public function users()
{
return $this->belongsToMany(User::class);
}
使用上面的代码,您可以访问来自用户的组和来自组的用户,如下所示:
$user = User::first();
$groups = $user->groups;
希望这会有所帮助,请参阅此处的文档: Eloquent Many to Many relationship
- 1 回答
- 0 关注
- 75 浏览
添加回答
举报
0/150
提交
取消