我如何过滤枢轴 table 内部的一对多关系 - Laravel 7

How can i filter pivot table with One to Many relation inside - Laravel 7

表格

例如,我有 4 个表:

Tables Diagram

型号

// PlacedBet
public function odds()
{
    return $this->belongsToMany(Odd::class, 'placed_bets_has_odds');
}
// Odd
public function placedBets()
{
    return $this->belongsToMany(PlacedBet::class, 'placed_bets_has_odds');
}
// Result
public function placedBetsOdds()
{
    return $this->hasMany(PlacedBetOdd::class);
}
// PlacedBetOdd
public function result()
{
    return $this->belongsTo(Result::class);
}

问题

我想要所有 placed_bets_has_odds.result_id 都为空的 PlacedBets。但是我不知道如何使用我的 PlacedBetRepository 文件中的 Eloquent 来做到这一点。

感谢您的帮助

您可以使用 whereDoesntHave 获取空关系。

PlaceBets::whereDoesntHave('results)->get();

但是正如@Naveed Ali 在评论中暗示的那样,您需要在 PlaceBets 模型中放置一个结果关系;

public function results()
{
  return $this->belongsToMany(Result::class, 'placed_bets_has_odds');
}