web-dev-qa-db-fra.com

laravel collection à array

J'ai deux modèles, Post et Comment; de nombreux commentaires appartiennent à un seul post. J'essaie d'accéder à tous les commentaires associés à une publication sous forme de tableau.

J'ai le suivant, qui donne une collection.

$comments_collection = $post->comments()->get()

Comment pourrais-je transformer ce $comments_collection dans un tableau? Existe-t-il un moyen plus direct d'accéder à ce tableau par le biais de relations éloquentes?

39
datavoredan

Vous pouvez utiliser toArray () d'éloquent comme ci-dessous.

La méthode toArray convertit la collection en un tableau simple PHP. Si les valeurs de la collection sont des modèles Eloquent, les modèles seront également convertis en tableaux.

$comments_collection = $post->comments()->get()->toArray()
74
Drudge Rajen

Essaye ça:

$comments_collection = $post->comments()->get()->toArray();

voir cela peut vous aider
méthode toArray () dans Collections

3
paranoid

Utilisez collect($comments_collection).

Sinon, essayez json_encode($comments_collection) pour convertir en json.

2
TechPotter

tu peux faire quelque chose comme ça

$collection = collect(['name' => 'Desk', 'price' => 200]);
$collection->toArray();

La référence est https://laravel.com/docs/5.1/collections#method-toarray

À l'origine du site Web de Laracasts https://laracasts.com/discuss/channels/laravel/how-to-convert-this-collection-to-an-ararray

2
Akshay Kulkarni