Jonio
Jonio

Reputation: 1293

nested json laravel 5.5

I have difficult to build and return a nested json. I want obtain the information from two differents table joined with an id.

This is my situation:

With this method on my controller:

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

and with the mapping in the class EventOccurrenceResource

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

I obtain this JSON:

{"data":[{"type":"event","id":"1","name":"event_1","description":"event blabla","location_id":11}

If I want to obtain all the informations about the table "location" with the id "location_id" and show in the same json, what is the best way to retrieved this data?

Thanks !

Upvotes: 0

Views: 144

Answers (1)

Mathieu Ferre
Mathieu Ferre

Reputation: 4412

I assume your Event Model have a location relationship :

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

you can do this once you have your event in a Controller :

$event->load('location');

return $event->toJson();

You can then hide or append any attribute you want :)

Upvotes: 1

Related Questions