2

次のコードでチケットのコレクションを変換しようとしています

public function transform(Ticket $ticket) {
    return [
        'id' => $ticket->id,
        'title' => $ticket->title,
        'status' => $this->transformerMessage($ticket->status),
        'interactions' => 
              $this->collection(
                   $ticket->interactions,
                   new InteractionTransformer(),
                   'interactions'
              )
    ];
}

しかし、相互作用の結果は常に空です。これが私が得ている出力の例です:

{
  "data": [
    {
      "id": 1,
      "title": "Earum repudiandae corporis sapiente at odit itaque ratione.",
      "status": "Open",
      "interactions": {}
    },
    {
      "id": 2,
      "title": "Odit impedit vitae quo sit molestiae eius.",
      "status": "Open",
      "interactions": {}
    },
    {
      "id": 3,
      "title": "Fuga cum corrupti ut.",
      "status": "Open",
      "interactions": {}
    }
  ]
}

死んで変数をダンプしようとすると$ticket->interactions、5 つのアイテムのコレクションが得られます (変数が空ではないことが証明されます)。

ここで何が間違っていますか?

ご清聴ありがとうございました。

4

2 に答える 2

0

代わりにこれを試してください。dingo 変換を参照するコールバック:

public function transform(Ticket $ticket) {
    $output = $ticket->interactions;
    $trans = new InteractionTransformer();
    return [
        'id' => $ticket->id,
        'title' => $ticket->title,
        'status' => $this->transformerMessage($ticket->status),
        'interactions' => 
              $ticket->interactions->transform(
                 function($i) use ($trans) {
                    return $trans->transform($i);
                 }
              )
    ];
}
于 2016-01-25T06:44:32.383 に答える