2017-12-19 30 views
0

Ich habe schwer zu bauen und einen verschachtelten JSON zurückgeben. Ich möchte die Informationen von zwei verschiedenen Tabellen erhalten, die mit einer ID verbunden sind.verschachtelte Json Laravel 5.5

Dies ist meine Situation:

Mit dieser Methode auf meinem Controller:

public function eventOccList(EventOccurrence $eventOccurrence){ 
    return new EventOccurrenceResourceCollection(EventOccurrence::all()); 
} 

und mit der Zuordnung in der Klasse EventOccurrenceResource

return [ 
    'type' => 'event', 
    'id' => (string) $this->id, 
    'name' => $this->name, 
    'description' => $this->description, 
    'location_id' => $this->location_id 
]; 

ich dieses JSON erhalten:

{"Daten" [{ "Type": "Ereignis", "id": "1", "name": "Event_1", "Beschreibung": "Ereignis blabla", "location_id": 11}:

Wenn ich Möchten Sie alle Informationen über die Tabelle "location" mit der ID "location_id" erhalten und im selben json anzeigen, was ist der beste Weg, diese Daten abzurufen?

Danke!

Antwort

1

Ich gehe davon aus Ihrem Event-Modell einen Ort Beziehung haben:

public function location{ 
    return $this->belongsTo(Event::class); 
} 

Sie können dies tun, wenn Sie Ihre Veranstaltung in einem Controller haben:

$event->load('location'); 

return $event->toJson(); 

Anschließend können Sie verstecken oder anhängen jede Sie Attribut wollen :)

+0

Sorry, ich bin nicht zu praktisch mit Laravel, könnten Sie mehr ins Detail gehen ... Vielen Dank – user8958651

+0

Immer wenn Sie ein Ereignis abrufen, können Sie entweder nur eine oder die ganze co Auswahl als JSON. Wie heißen Ihre Modelle? Und wie holst du sie? –