Documentación de Arrel
Arrel es un framework de administración para Laravel: defines un Resource una sola vez, en PHP, y obtienes un panel completo (formulario, tabla, filtros, acciones, relation managers y, opcionalmente, un lugar en el dashboard). El frontend es una SPA en Vue que Arrel sirve precompilada; no hay nada que escribir en JavaScript para un Resource normal.
final class PostResource extends Resource
{
protected static string $model = Post::class;
public function fields(): array
{
return [
Section::make('Content')->schema([
Text::make('title')->rules('required', 'string', 'max:255'),
Toggle::make('is_published')->default(false),
]),
];
}
public function columns(): array
{
return [
Column::make('title')->sortable()->searchable(),
Column::make('is_published')->as('boolean')->sortable(),
];
}
}Esta clase sola ya da un CRUD completo: listado con ordenación y búsqueda, formulario de creación/edición con validación de Laravel, y un endpoint /schema que el frontend renderiza dinámicamente. No hay un segundo lenguaje que aprender: los mismos métodos que ya conoces de Laravel (rules(), closures, Eloquent) son la API de Arrel.
Por dónde empezar
- Instalación: requisitos,
composer require, publicar los assets. - Configuración de un Panel: registrar un
Panel, el prefijo de la URL, marca propia, tema y textos. - Resources: el núcleo de Arrel, cómo se define un Resource y cómo funciona la autorización.
Qué encontrarás
| El núcleo | Resources, campos, tablas y columnas, filtros, acciones y Relation managers. |
| Más allá del CRUD | Páginas, páginas personalizadas con el kit de componentes, widgets y multi-tenancy. |
| Acceso y seguridad | Autenticación (verificación del correo, segundo factor, notificaciones) y seguridad y autorización. |
| Mantenerlo al día | Cambios de comportamiento y Releases. |
Los ejemplos de esta documentación
Los ejemplos parten de un PostResource sencillo, el mismo que usa el test suite de Arrel (workbench/app/Resources/PostResource.php). Cuando un ejemplo necesita un caso que este Resource no tiene, lo hace con nombres genéricos (Comment, Room...).
Requisitos
| PHP | ^8.5 |
| Laravel | ^13.0 |