雄辩显示枢轴

时间:2017-02-28 23:17:39

标签: laravel eloquent pivot laravel-eloquent

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

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

问题是得分者的json结果如下

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

隐藏了枢轴(目标)team_id和目标应该出现在一个名为pivot的嵌套对象中的每个对象上,是否有人遇到过这样的问题?我在这里找到了什么。像

这样的东西
"scorers": [
  {
    "id": 196,
    "name": "Tino",
    "surname": "Heck",
    "age": 24,
    "pivot": {
      "goals": 3
    }
  },...

Db结构

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

得分者内部的结果是正确的,所以我得到了目标>的实际玩家。 0,但不是我正在寻找的支点

提前致谢。

1 个答案:

答案 0 :(得分:0)

傻傻的我,我发现了错误,问题是我在玩家模型上隐藏了枢轴:( 所以这里的教训是$ hidden数组属性,它是关系模型上的一个,而不是父类的一个(在这种情况下匹配)