Manejo fluido de arrays en Laravel, el helper fluent

  • Publicado el 08 enero, 2025
  • Palabras: 46

Trabajar con arrays anidados en Laravel ahora es más sencillo con la introducción del helper fluent(), que proporciona una forma más intuitiva de acceder y manipular datos multidimensionales.

Manejo fluido de arrays en Laravel, el helper fluent

#Uso básico

A continuación se explica cómo trabajar con arrays multidimensionales utilizando el helper fluent():

 

$data = [
    'user' => [
        'name' => 'Philo',
        'address' => [
            'city' => 'Amsterdam',
            'country' => 'Netherlands',
        ]
    ],
    'posts' => [
        ['title' => 'Post 1'],
        ['title' => 'Post 2']
    ]
];

// Acceder a datos anidados
fluent($data)->user;
fluent($data)->get('user.name');

// Encadenar con colecciones
fluent($data)->collect('posts')->pluck('title');

// convertir JSON
fluent($data)->scope('user.address')->toJson();

 

#Ejemplo práctico

A continuación se muestra una implementación práctica para un sistema de perfiles de usuario:

 

class ProfileController extends Controller
{
    public function show(User $user)
    {
        $profileData = [
            'user' => [
                'info' => [
                    'name' => $user->name,
                    'email' => $user->email,
                    'joined' => $user->created_at
                ],
                'preferences' => [
                    'notifications' => $user->notification_preferences,
                    'theme' => $user->theme_settings
                ]
            ],
            'stats' => [
                'posts' => $user->posts->count(),
                'comments' => $user->comments->count(),
                'likes' => $user->likes->count()
            ]
        ];

        $profile = fluent($profileData);

        return response()->json([
            'name' => $profile->get('user.info.name'),
            'email' => $profile->get('user.info.email'),
            'theme' => $profile->get('user.preferences.theme'),
            'engagement' => $profile->scope('stats')->toArray(),
            'notifications' => $profile
                ->collect('user.preferences.notifications')
                ->filter(fn($enabled) => $enabled)
                ->keys()
        ]);
    }
}

 

El helper fluent() hace que las operaciones de arrays complejos sean más legibles y fáciles de mantener.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Transforma los datos de respuesta HTTP con el método fluent de Laravel
585

Transforma los datos de respuesta HTTP con el método fluent de Laravel

Gestión de atributos anidados con el método set de la clase Fluent de Laravel
570

Gestión de atributos anidados con el método set de la clase Fluent de Laravel

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión