ezermeno / fmxpluck
Package for concatenate some columns in descriptions of array directly from model in eloquent laravel
v2.0.1
2026-03-28 07:11 UTC
Requires
- php: ^7.1.3|^8
This package is not auto-updated.
Last update: 2026-03-28 07:30:44 UTC
README
Un scope para Eloquent que permite generar arrays tipo pluck concatenando múltiples columnas, incluyendo campos de relaciones (belongsTo) usando notación relacion.campo.
🚀 Instalación
En tu proyecto Laravel:
composer require ezermeno/fmxpluck
📦 Uso básico
En tu modelo (ejemplo User):
$usuarios = User::fmxPluck(['name','email'],'id',':');
Esto devolverá un array con el id como clave y el valor concatenado:
[
1 => "Juan Pérez:juan@correo.com",
2 => "María López:maria@correo.com",
]
🔗 Uso con relaciones
Puedes incluir campos de relaciones belongsTo usando notación relacion.campo:
$usuarios = User::fmxPluck(['name','email','puesto.nombre'],'id',':');
Esto generará:
[
1 => "Juan Pérez:juan@correo.com:Gerente",
2 => "María López:maria@correo.com:Analista",
]
También puedes usar directamente nombres de tabla:
$usuarios = User::fmxPluck(['users.name','users.email','puestos.nombre'],'users.id',':');
⚙️ Parámetros
fmxPluck(array $columnas, string $id, string $separador = " ")
- $columnas → columnas del modelo o relaciones (
['name','email','puesto.nombre']) - $id → columna que será la clave del array (ej.
'id') - $separador → texto que separa cada columna concatenada (ej.
':')
📌 Notas
- Las relaciones deben ser de tipo
belongsToy la FK debe estar en el modelo principal (ej.users.puesto_id). - Puedes usar directamente nombres de tabla (
puestos.nombre) si prefieres control total. - El scope soporta ambos estilos: notación de relación (
puesto.nombre) y tabla directa (puestos.nombre).
📝 Ejemplo completo
// En tu controlador public function index() { $usuarios = User::fmxPluck(['users.name','users.email','puestos.nombre'],'users.id',':'); return view('usuarios.index', compact('usuarios')); }
📄 Licencia
Este paquete se distribuye bajo la licencia MIT.