我很難得到這個權利與Laravel 5.但是,Rails的,我可以很容易地做到這一點:Laravel多對多的關係連接兩個型號
用戶可以是一個部分很多球隊。我們知道,表User
和Team
不可能有關係id所以我不會在這裏發佈這些模式,而是我有一個TeamUser
表:
Schema::create('team_users', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->integer('team_id');
$table->timestamps();
});
TeamUser.php:
public function user()
{
return $this->belongsTo(User::class);
}
public function team()
{
return $this->belongsTo(Team::class);
}
團隊.php
public function users()
{
return $this->hasManyThrough(User::class, TeamUser::class);
}
user.php的
public function teams()
{
return $this->hasManyThrough(Team::class, TeamUser::class);
}
看起來好像laravel的doc和我所看到的其他教程是不同的。我再次向Laravel求新,我需要這個設置。
廷克:
$tu = App\TeamUser::create([ 'user_id' => 1, 'team_id' => 1 ]);
照亮\數據庫\鋒\ MassAssignmentException與消息 'USER_ID'
預期:
$tu->users // is_array($tu) to be true
有人能解釋這裏有什麼問題嗎?非常感謝。
什麼你要找的是一個透視表。你不需要'hasManyThrough',只需'hasMany'就夠了。 https://laravel.com/docs/5.4/eloquent-relationships#many-to-many應該是一個很好的參考點。 –