Combiner plusieurs résultats lors de la jointure de tables : un guide étape par étape
P粉769045426
P粉769045426 2024-04-04 09:44:27
0
1
581

J'ai une requête qui renvoie les noms des catégories et leurs sous-catégories.

$subcategories = Subcategory::select('subcategories.name as subcatname', 'categories.name as catname')
                ->join('categories', 'subcategories.idCategory', '=', 'categories.id')
                ->get();

Maintenant, le résultat que j'obtiens est le suivant :

'Music' => 'Jazz',
'Music' => 'Rock',
'Music' => 'Pop',
'Movie' => 'Action'

Comment puis-je le regrouper comme ceci :

'Music' => array('Jazz', 'Rock','Pop'),
'Movies' => array('Action')

Est-ce possible sans trop d'itérations de boucle et de vérifier quelle sous-catégorie appartient à quelle catégorie ?

P粉769045426
P粉769045426

répondre à tous(1)
P粉513318114

Vous pouvez utiliser Laravel集合

Vous devez d'abord passer groupBy 方法进行分组,然后映射chaque groupe et fusionner chaque sous-tableau.

$result = collect($subcategories)
        ->groupBy('catname')
        ->map(function ($item) {
            return array_merge($item->toArray());
        })->all();
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal