首页 文章

在Laravel中重新排列JSON输出

提问于
浏览
1

有几个非常相似的问题,但不是这个问题 . 让我们从我的模型开始:

  • 比赛(hasMany Event ,belongsToMany Player

  • Player(hasMany Event ,belongsToMany Contest ,belongsToMany Event

  • 事件(belongsTo Contest ,belongsToMany Players->withPivot('score) )(实际上称为 ContestEvent ,因为 Event 是一个Laravel类)

我正在编写一个API来处理数据的其他内容 . 现在我从给定的比赛中得到这个输出:

{
  "id": "1",
  "owner_id": "1",
  "name": "Some Contest",
  "start_date": "2013-08-09",
  "end_date": "2013-08-31",
  "is_public": "1",
  "is_finished": "0",
  "players": [
    {
      "id": "1",
      "first_name": "Bob",
      "last_name": "Smith",
      "initial_name": "Bob S",
      "pivot": {
        "contest_id": "1",
        "user_id": "1"
      }
    }
  ],
  "events": [
    {
      "id": "1",
      "name": "Stage 1",
      "date": "2013-08-01",
      "players": [
        {
          "id": "1",
          "first_name": "Bob",
          "last_name": "Smith",
          "initial_name": "Bob S",
          "pivot": {
            "contest_event_id": "1",
            "user_id": "1",
            "score": "5"
          }
        }
      ]
    }
  ]
}

pivot 部分是垃圾数据,但 events 下的 score 部分除外 . 我可以使用$ hidden隐藏整个 pivot 部分,但我希望在 pivot 数组之外的一步中访问 score 值 .

我已经弄乱了 $appendgetFooAttribute() ,但到目前为止没有成功 - 我无法弄清楚如何让Eloquent做我想做的事 . 有什么建议?

1 回答

  • 1

    我没有重新安排我的模型,而是发现了Fractal,这使得创建自定义JSON输出的方式非常简单 .

相关问题