0

由于某些奇怪的原因,使用 Eloquent 构建此模型隐藏了我在关系中明确要求的 Pivot(此模型称为 Match):

public function scorers()
{
    return $this->belongsToMany(
        Player::class,
        'match_players',
        'match_id'
    )->withPivot(
        'goals'
    )->where(
        'goals', '>', 0
    );
}

public function scopeComplete($query)
{
    return $query->with(
        'homeTeam',
        'awayTeam',
        'scorers'
    );
}

问题是 scorers 的 json 结果如下

"scorers": [
  {
    "id": 196,
    "name": "Tino",
    "surname": "Heck",
    "age": 24
  },...

并且隐藏了应该出现在每个对象上的枢轴(目标)team_id 和目标,它们应该出现在一个称为枢轴的嵌套对象内,有人遇到过这样的问题吗?我猫在这里找到任何东西。就像是

"scorers": [
  {
    "id": 196,
    "name": "Tino",
    "surname": "Heck",
    "age": 24,
    "pivot": {
      "goals": 3
    }
  },...

数据库结构是

Match
- id
- ..
Players
- id
- ...
MatchPlayer
- player_id
- match_id
- goals

得分手内的结果是正确的,所以我得到了目标> 0的实际球员,但不是我正在寻找的支点

提前致谢。

4

1 回答 1

0

愚蠢的我,我发现了错误,问题是我在 Player 模型上隐藏了枢轴:( 所以这里的教训是 $hidden 数组属性,它是关系模型上的一个,而不是父级上的那个(匹配在这个案子)

于 2017-02-28T23:27:25.093 回答