Champs, colonnes, filtres, actions, relation managers et widgets de tableau de bord, générés depuis une seule classe PHP. Frontend Vue SPA.
Trois étapes, toutes dans votre projet Laravel.
Une classe PHP avec les champs, colonnes, filtres et actions de votre modèle.
Un endpoint /schema et une API JSON, protégés par Sanctum et les Policies du modèle.
Un frontend Vue précompilé affiche le formulaire, le tableau et les filtres à partir du schéma.
Chaque brique se définit en PHP, dans le Resource lui-même, et est servie via un unique endpoint /schema.
Text, Select, Date, Toggle, File, Image, Repeater et RichEditor, chacun avec ses propres règles de validation.
Colonnes calculées, badges et images avec des closures value()/color(), pas seulement un pass-through d’attributs.
View, Edit, Delete, Restore, ForceDelete et des actions sur mesure avec leur propre schema et handler, avec support bulk.
Filtres de table réutilisables, appliqués directement sur la query du Resource.
Attach/Detach et des actions propres à la relation, gérées depuis le panneau du Resource parent.
Cartes de statistiques avec valeur, couleur, icône et description, calculées à chaque requête du dashboard.
Un composant Vue à vous, partageant l'instance d'Arrel ou totalement isolé avec registerMountablePage.
Un TenantResolver sur mesure et un middleware configurable ; Arrel n’impose aucune stratégie.
fields(), columns() et actions() suffisent à générer le formulaire, la table et les endpoints. Pas de DSL d'autorisation séparé : canViewAny(), canEdit()… délèguent à la Policy du modèle.
Lire le guide des Resources →final class PostResource extends Resource { protected static string $model = Post::class; protected static string $icon = 'document-text'; public function fields(): array { return [ Text::make('title')->rules('required', 'max:255'), Select::make('status')->options(['draft', 'published']), Toggle::make('is_featured'), ]; } public function columns(): array { return [ Column::make('title')->searchable()->sortable(), Column::make('status')->as('badge'), ]; } public function actions(): array { return [ViewAction::make(), EditAction::make(), DeleteAction::make()]; } }
Licence par application en production.
Pour un seul projet.
Renouvellement à 19€ / an
Contactez-nousPour des applications illimitées et toute l'équipe.
Renouvellement à 49€ / an
Contactez-nous