Laravel 5与3个表的关系

Laravel 5与3个表的关系,laravel,eloquent,Laravel,Eloquent,我有三张桌子: 类别 id | name ----------------------------------- 1 | Men >80kg ----------------------------------- 2 | Women >80kg ----------------------------------- 3 | Team Men &g

我有三张桌子:

类别

    id      |     name      
-----------------------------------
    1       |      Men >80kg   
-----------------------------------
    2       |      Women >80kg   
-----------------------------------
    3       |      Team Men >80kg   
-----------------------------------
类别锦标赛(列出锦标赛中可用的所有类别)

类别用户(用户注册的类别)

当用户选择要参与的类别时,我正在尝试同步类别\u锦标赛\u用户

$categories = $request->get('categories_to_register');
$tournament->categories_user()->sync($categories);
我的很多亲戚在哪里

class Tournament extends Model
{
...
 public function categories_user()
 {
     return $this->belongsToMany('App\Category', 'category_tournament_user',  'user_id','category_tournament_id');
 }
}
它正在同步,但不是很好,不是插入用户id,而是插入锦标赛id,我想这是因为我从锦标赛模型调用它

我试着改变关系的顺序

user->tournament->category or
tournament->user->category
但当用户没有注册类别时

 user->tournament or
 tournament->user
将为空,因此我无法调用->类别


如何解决这个问题?

如果您正在跟踪用户创建的类别,为什么不将用户id存储在类别表中?在这种情况下,使用belongsTo关系会容易得多,不是吗?我不跟踪用户创建的类别。我有一个分类目录。然后,管理员锦标赛决定锦标赛1将有10个类别,然后用户将只注册这10个类别中的3个
user->tournament->category or
tournament->user->category
 user->tournament or
 tournament->user