Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'utilise une collection pour créer mon API. Le problème est que lorsque je créer une collction, un tableau "data" regroupe toutes mes données

La méthode index() de mon PostController

return PostCollection::collection(Post::orderBy('updated_at')->get());

La méthode toArray() de mon PostCollection

public function toArray($request)
    {
        return [
            'id' => $this->id,
            'title' => $this->title,
            'body' => substr($this->body, 0, 80) . "...",
            'author' => $this->author,
            'tags' => $this->tags,
            'category' => $this->category,
            'thumb_up' => $this->thumb_up,
            'thumb_down' => $this->thumb_down,
            'updated_at' => $this->updated_at->format('Y-m-d H:m:s')
        ];
    }

Une petite partie de mon API

{
    "data": [
        {
            "id": 1,
            "title": "Ipsam iusto ut et sed rem est molestiae aspernatur omnis.",
            "body": "Et dolores dolores hic et omnis deserunt quia non provident nisi architecto ipsa...",
            "author": "Melvina Upton",
            "tags": "#sys",
            "category": "System",
            "thumb_up": "35",
            "thumb_down": "-5",
            "updated_at": "2018-04-03 13:04:30"
        },
        {
            "id": 2,
            "title": "Perferendis illo commodi eos explicabo necessitatibus dolore.",
            "body": "Culpa aliquam veniam sit veniam rem provident fugit qui reiciendis earum in repe...",
            "author": "Jameson Leffler",
            "tags": "#infra",
            "category": "Development",
            "thumb_up": "23",
            "thumb_down": "-36",
            "updated_at": "2018-04-03 13:04:30"
        }
    ]
}

Ce que je veux

Je voudrai que le tableau "data" ne soit plus dans l'API.

Merci pour votre future aide !

2 réponses


vapenation69
Réponse acceptée

dans ton AppServiceProvider
dans la fonction boot() rajoute:

Resource::withoutWrapping();

Bonjour,

Pourquoi ne pas passer directement par la méthode toJson ?

https://laravel.com/docs/5.6/eloquent-serialization#serializing-to-json