我有3张桌子:
分类
id | name
-----------------------------------
1 | Men >80kg
-----------------------------------
2 | Women >80kg
-----------------------------------
3 | Team Men >80kg
-----------------------------------
Category_Tournament(列出锦标赛中可用的所有类别)
id | category_id | tournament_id
---------------------------
1 | 1 | 2
---------------------------
2 | 2 | 2
---------------------------
3 | 3 | 2
---------------------------
4 | 4 | 2
---------------------------
Category_Tournament_User(用户注册的类别)
id | category_tournament_id | user_id
-----------------------------------------------
1 | 1 | 201
-----------------------------------------------
2 | 3 | 202
-----------------------------------------------
我尝试在用户选择参与类别
时同步Category_Tournament_User$categories = $request->get('categories_to_register');
$tournament->categories_user()->sync($categories);
我的关系ManyToMany是
class Tournament extends Model
{
...
public function categories_user()
{
return $this->belongsToMany('App\Category', 'category_tournament_user', 'user_id','category_tournament_id');
}
}
它正在同步,但不是很好,而不是插入user_id,它插入了tournament_id,我想这是因为我从锦标赛模型中调用它。
我尝试改变关系的顺序
user->tournament->category or
tournament->user->category
但是当用户没有注册类别时,
user->tournament or
tournament->user
将为null,因此我无法调用 - > category
我该如何解决这个烂摊子?