我想使用games
模型
giveaway
giveaway:
id
giveaway_games:
id
gameID
giveawayID
games:
id
name
阅读我理解的文件,我必须使用hasManyThrough
关系,但我不确定我是否正确使用它
public function gamesNames(){
return $this->hasManyThrough(Games::class, GiveawayGames::class, 'gameID', 'id');
}
非常感谢任何帮助。
答案 0 :(得分:1)
games
表需要giveaway_games
的外键。在下面的示例中,我坚持使用_id
后缀作为外键字段的Laravel默认值。
<强>类强>:
class GiveAway
{
public function games()
{
return $this->hasManyThrough(Games::class, GiveawayGames::class);
}
}
作为助记符,您可以将
hasManyThrough
读作:GiveAway 有很多游戏通过 GiveawayGames
或更抽象:
模型有很多参数1 到参数2
<强>模式强>:
赠品:
giveaway_games:
游戏:
请注意外键的自定义名称:
如果您被迫自定义外键名称,例如使用giveawayID
而不是giveaway_id
,则可以将自定义名称指定为hasManyThrough()
方法的第3个参数:< / p>
return $this->hasManyThrough(Games::class, GiveawayGames::class, 'giveawayID');
如果您另外自定义了id
字段的名称,请告诉uuid
您可以在第4个参数中指定:
return $this->hasManyThrough(Games::class, GiveawayGames::class, 'giveawayID', 'uuid');