簡體   English   中英

Laravel 中的 HasOne 關系與“通過”表

[英]HasOne relationship in laravel with a "through" table

我目前在人際關系上有問題。

我有3張桌子:

  • 派系:
    • ID
  • 角色:
    • ID
  • fraction_roles:
    • 派系_id
    • role_id

每個派系都有很多角色,但每個角色只有一個派系。 我已經考慮過在我的角色表中創建一個 faction_id 列,但我想只用 faction_roles 來解決它,所以我不必向 2 個表添加數據。

我的榜樣是這樣的:

 public function faction()
 {
    return $this->hasOne(Faction::class, 'faction_roles.faction_id', 'faction_roles.role_id');
 }

我已經用 $this->belongsTo(Faction::class) 試過了,但效果不佳。

提前致謝!

干杯

如果您像在 Faction 模型中那樣定義關系,我看不出問題:

public function factions() {
    return $this->belongsToMany(Faction::class);
}

然后關系方法將返回一個項目,如果你想像這樣查詢關系的第一個元素:

$role->factions->first();

或者:

$role->factions()->first();

請參閱Eager loading 了解差異

您還需要什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM