Skip to content

Back-office

Le back-office (back.*, préfixe admin/) est du cœur. On l'étend par les registres et les hooks, on le personnalise par surcharge de vue.

Par où l'étendre

Je veux…Point d'extensionMécanique
ajouter une entrée de menuBackMenuRegistryregistres
ajouter des routes / un écran d'adminRouteContributionRegistrar::back()registres
ajouter un onglet / une section à un écranViewHookRegistryhooks
valider un champ greffé sur un formulaireFormRuleRegistryregistres
changer l'apparence d'un écransurcharge vendor/…surcharger une vue
réordonner le menu sans codeconfig/back_menu.php

Listes (datatables)

Les listings du back-office sont des classes *Datatable (sur stafe/laravel-datatable) : colonnes, recherche, édition en ligne, export. Pour ajouter une colonne ou une action à une datatable existante (sans la forker), utilisez le DatatableExtensionRegistry — voir les registres :

php
$this->app->make(DatatableExtensionRegistry::class)->extend('products', function (Datatable $datatable) {
    $datatable->columns()->column('supplier')->label(__('Fournisseur'));
});

Onglets & sections d'édition

Chaque écran d'édition expose back.<ressource>.edit.tabs et .sections : un package y greffe un onglet ou une section sans toucher à la vue. Voir les hooks & slots.

Pour valider un champ ainsi greffé, contribuez ses règles via le FormRuleRegistryextend(SaveProductRequest::class, ['supplier_id' => 'required|exists:…']) depuis votre provider. AppFormRequest les fusionne automatiquement, sans surcharger la Form Request du cœur.

Autorisations

L'accès est gardé par auth + CanAccessBackoffice. Les rôles/permissions (UserRole, Permission) sont des enums ; vous ajoutez vos propres gates via Gate::define(...). Voir Comptes & autorisations.