在内部关系中使用JOIN

时间:2018-11-07 18:05:08

标签: php laravel

我有三个表:锦标赛,参与者,用户。结构是:

比赛:

-Id
-Description
-Date

参与者

-Id
-Id_tourn
-Id_user

用户

-Id
-Name

在我的刀片模板上,我需要锦标赛表中的所有信息以及该锦标赛的参与者用户的信息。

我已经创建了锦标赛和用户模型之间的关系。

更新: 比赛型号:

public function users() {
   return $this->belongsToMany('App\User', 'Participants', 'Id_tourn', 'Id_user');
}

public function getTournaments()
{
    return $this->with('users')->get();
}

比赛控制器:

public function show()
{
    $tourns = new Tournaments();

    $tournaments = $tourns->getTournaments();
    return $tournaments;
}

但是当我在foreach循环中尝试$tournament->users时,它将返回0个结果

非常感谢!

1 个答案:

答案 0 :(得分:2)

似乎您在“多对多”案例中使用了“多对多”关系,here是“多对多”关系的文档。您需要建立这样的关系:

public function users() {
    return $this->belongsToMany('App\User', 'Participants', 'Id_tourn', 'Id_user');
}

因此,您可以像这样访问用户:

$tournament->users