Ciclo de Vida del ResourceController
El ResourceController es la clase base para criar controladores CRUD rápidamente. Para permitir flexibilidad sin perder la automatización, dispone de un sistema de Hooks.
Flujo de Ejecución (Lifecycle)
Cuando se ejecuta doIndex() (o cualquier acción por defecto):
- detectMode(): Determina si es Listado o Edición (basado en parámetros GET/POST).
- beforeConfig(): [HOOK] Se ejecuta antes de construir la configuración. Útil para definir variables globales.
- buildConfiguration(): Construye la estructura de columnas, campos y pestañas.
- checkTableIntegrity(): (Opcional) Verifica que la tabla exista.
- setup(): Añade botones por defecto (Nuevo, Guardar).
- Hooks Específicos de Modo:
- Si es MODO LISTA -> beforeList()
- Si es MODO EDICIÓN -> beforeEdit()
- handleRequest(): Procesa la petición real (AJAX get_data, save, etc).
- renderView(): Muestra la plantilla Blade.
Cómo Usar los Hooks
beforeEdit()
Úsalo para inyectar datos adicionales a la vista de edición o cambiar la plantilla por defecto.
php
protected function beforeEdit()
{
// Cargar datos extra
$extraData = MyModel::all();
$this->addVariable('extraData', $extraData);
// Cambiar la plantilla si necesitas un formulario totalmente personalizado
$this->setDefaultTemplate('page/my_custom_edit');
}beforeList()
Úsalo para modificar las columnas o filtros dinámicamente según el usuario o estado.
php
protected function beforeList()
{
if ($this->user->is_superadmin) {
$this->addListColumn('general', 'deleted_at', 'Borrado el');
}
}