我正在嘗試將學生數據與組數據一起存儲在數組中。例如: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 關注
- 92 瀏覽
添加回答
舉報
0/150
提交
取消