@laravilt/panel
v1.0.0
Published
Complete admin panel system with resources, pages, navigation, multi-tenancy, and customizable layouts. Build powerful admin interfaces with CRUD resources, custom pages, and multiple panels.
Downloads
283
Maintainers
Readme

Laravilt Panel
A powerful admin panel framework for Laravel with Vue.js (Inertia.js) frontend. Build beautiful, reactive admin panels with minimal effort.
Features
- Resources: Auto-generate CRUD interfaces from database tables
- Pages: Custom standalone pages with full control
- Clusters: Group related pages under a common navigation section
- API Generation: RESTful API endpoints with interactive API Tester
- Forms: Dynamic form builder with 30+ field types
- Tables: Feature-rich data tables with filtering, sorting, and bulk actions
- Infolists: Display record details in elegant layouts
- Actions: Customizable actions with modal support
- Navigation: Auto-generated navigation with groups and badges
Installation
composer require laravilt/panelThe package will automatically register its service provider.
Configuration
Publish the config file:
php artisan vendor:publish --tag="laravilt-panel-config"Quick Start
1. Create a Panel
php artisan laravilt:panel adminThis creates a new admin panel at app/Providers/Laravilt/AdminPanelProvider.php.
2. Create a Resource
php artisan laravilt:resource adminFollow the interactive prompts to:
- Select a database table
- Choose which columns to include
- Enable API endpoints (optional)
- Enable API Tester interface (optional)
3. Create a Page
php artisan laravilt:page admin DashboardCreates a standalone page with both PHP controller and Vue component.
4. Create a Cluster
php artisan laravilt:cluster admin Settings --icon=SettingsCreates a cluster to group related pages:
// app/Laravilt/Admin/Clusters/Settings.php
class Settings extends Cluster
{
protected static ?string $navigationIcon = 'Settings';
protected static ?string $navigationLabel = 'Settings';
}Assign pages to a cluster:
class ProfilePage extends Page
{
protected static ?string $cluster = Settings::class;
}API Generation
Resources can automatically generate RESTful API endpoints.
Enable API on a Resource
Simply define an api() method on your resource - the API will be auto-detected:
class ProductResource extends Resource
{
public static function api(ApiResource $api): ApiResource
{
return ProductApi::configure($api);
}
}API Configuration Class
class ProductApi
{
public static function configure(ApiResource $api): ApiResource
{
return $api
->columns([
ApiColumn::make('id')->type('integer')->sortable(),
ApiColumn::make('name')->searchable()->sortable(),
ApiColumn::make('price')->type('decimal'),
ApiColumn::make('created_at')->type('datetime'),
])
->useAPITester(); // Enable interactive API tester UI
}
}API Tester Interface
Enable the API Tester UI to allow interactive API testing directly from the panel:
$api->useAPITester(); // Enable
$api->useAPITester(false); // Disable (default)Available API Methods
$api
->columns([...]) // Define API columns
->endpoint('/api/products') // Custom endpoint
->perPage(25) // Items per page
->authenticated() // Require authentication
->list(enabled: true) // Enable/disable list operation
->show(enabled: true) // Enable/disable show operation
->create(enabled: true) // Enable/disable create operation
->update(enabled: true) // Enable/disable update operation
->delete(enabled: true) // Enable/disable delete operation
->useAPITester(); // Enable API Tester interfaceCommands
| Command | Description |
|---------|-------------|
| laravilt:panel {name} | Create a new panel |
| laravilt:resource {panel} | Create a resource with interactive prompts |
| laravilt:page {panel} {name} | Create a standalone page |
| laravilt:cluster {panel} {name} | Create a cluster for grouping pages |
| laravilt:relation {panel} {resource} {name} | Create a relation manager |
Cluster Command Options
php artisan laravilt:cluster admin Settings \
--icon=Settings \
--sort=10 \
--group="System"Resource Structure
app/Laravilt/Admin/Resources/Product/
├── ProductResource.php # Main resource class
├── Form/
│ └── ProductForm.php # Form configuration
├── Table/
│ └── ProductTable.php # Table configuration
├── InfoList/
│ └── ProductInfoList.php # Infolist configuration
├── Api/
│ └── ProductApi.php # API configuration (optional)
└── Pages/
├── ListProduct.php # List page
├── CreateProduct.php # Create page
├── EditProduct.php # Edit page
└── ViewProduct.php # View pageTesting
composer testCode Style
composer formatStatic Analysis
composer analyseLicense
The MIT License (MIT). Please see License File for more information.
