Componente Select de Catálogos
Para acelerar la construcción de formularios y garantizar la integridad referencial contra la tabla catalogos, Mañuti implementa componentes de selección dinámica respaldados por memoria en Redis.
1. Consumo del Helper Catalogo::getOpciones
Cualquier vista Blade puede invocar listas ordenadas y cacheadas mediante una sola línea de código, pasando el slug de la categoría padre:
@php
$opcionesZonas = \App\Models\Catalogo::getOpciones('SYS_ZONA_HORARIA');
$valorActual = $user->getConfig('zona_horaria');
@endphp
<select name="zona_horaria" class="form-select" data-control="select2" data-placeholder="Seleccionar zona...">
<option value="" disabled {{ empty($valorActual) ? 'selected' : '' }}>
Seleccionar Zona Horaria...
</option>
@foreach($opcionesZonas as $opcion)
<option value="{{ $opcion->valor }}" {{ $valorActual == $opcion->valor ? 'selected' : '' }}>
{{ $opcion->etiqueta }}
</option>
@endforeach
</select>
2. Inyección de Catálogos con Tailwind CSS
El componente integra estilos utilitarios modernos con validación de estado y accesibilidad:
<div class="mb-4">
<label class="form-label required">Estatus Operativo</label>
<select name="cat_status" class="form-select border-gray-300 rounded-md shadow-sm">
@foreach(\App\Models\Catalogo::getOpciones('SYS_ESTATUS_USUARIO') as $item)
<option value="{{ $item->id }}" {{ old('cat_status', $user->cat_status) == $item->id ? 'selected' : '' }}>
{{ $item->etiqueta }}
</option>
@endforeach
</select>
</div>