关系多模型

Relation multiple Models

我很长时间没有使用 laravel,我正在努力获取一些数据。

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

db:

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);
    }

你得到了什么?你得到一个空的集合吗? 正如所评论的那样,尝试这样做

dd($example->bookmakers);

此外,请先尝试执行 dd($example),看看它是否包含 bookmakers 集合 属性。

当您在模型 ($example->bookmakers()) 上调用关系方法时,它 returns 实际关系,允许您添加额外的约束。

您需要调用的是 'dynamic property',它只是 returns 来自关系的数据:

$example->bookmakers // without the ()

当您与league_bookmakerstable建立关联时,您将不会直接获得庄家数据。在这种情况下,您可以像下面的代码一样定义一个 belongsToMany 关系 -

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

它将 return 书商 table 直接提供信息。