关系多个模型

时间:2018-04-27 17:53:07

标签: laravel eloquent laravel-5.5

很长一段时间我一直没有使用laravel,我很喜欢获取一些数据。

我试图从比赛中获得所有博彩公司,但没有得到:

分贝:

leagues:
-id
-name

league_bookmakers:
- id
- league_id
- bookmaker_id

bookmakers:
- id
- name

控制器:

 $example = \App\League::find(440);

    dd($example->bookmakers());

模特联盟:

public function bookmakers()
    {
        return $this->hasMany(LeagueBookmaker::class);
    }

3 个答案:

答案 0 :(得分:1)

你有什么收获?你收到空集吗? 如评论所述,尝试这样做

dd($example->bookmakers);

另外,首先尝试dd($example),然后查看其中是否包含bookmakers集合属性。

答案 1 :(得分:1)

当您在模型($example->bookmakers())上调用关系方法时,它会返回实际关系,允许您添加其他约束。

你需要调用的是'动态属性',它只是按原样返回关系中的数据:

$example->bookmakers // without the ()

答案 2 :(得分:0)

当您与league_bookmakers表关联时,您将无法直接获得博彩公司的数据。在这种情况下,您可以定义belongsToMany Relation,如下面的代码 -

public function bookmakers()
    {
        return $this->belongsToMany(Bookmaker::class, 'league_bookmakers','league_id', 'bookmaker_id');
    }

它将直接返回预订者表信息。