vormiaphp/ui-livewireflux-admin
Laravel admin panel package for Vormia apps with Livewire 4 + Flux. Ships prebuilt routes, views, and Livewire components for managing categories, inheritance, locations, availability, and admin users, plus automatic sidebar integration and role assignment support.
Install the package:
composer require vormiaphp/ui-livewireflux-admin
php artisan ui-livewireflux-admin:install
Verify installation:
routes/web.php for injected admin routes.AdminPanel component exists in app/View/Components/AdminPanel.php.First use case:
Access /admin/categories to manage categories via the pre-built Livewire component. Use the AdminPanel component in your Blade views:
<x-admin-panel header="Categories" desc="Manage your categories">
@livewire('admin.control.categories.index')
</x-admin-panel>
resources/views/livewire/admin/app/View/Components/AdminPanel.phpresources/views/layouts/app/sidebar.blade.php or resources/views/components/layouts/app/sidebar.blade.phpdocs/GUIDE.md (roles, Fortify, layout patterns)Admin Panel Layout:
Use the AdminPanel component to wrap Livewire components for consistent styling and metadata:
<x-admin-panel header="Admins" :button="$createButton">
@livewire('admin.admins.index')
</x-admin-panel>
Livewire Component Workflow:
@livewire('admin.control.categories.index')).@livewire('admin.control.categories.create')).AdminTable) for shared functionality like pagination or search.Sidebar Integration:
Inject admin menu items into the Platform Flux group:
<flux:sidebar.group :heading="__('Platform')">
<!-- Existing items -->
<flux:sidebar.item icon="users" :href="route('admin.admins.index')" wire:navigate>
{{ __('Admins') }}
</flux:sidebar.item>
</flux:sidebar.group>
Role Assignment: Attach roles to users during registration:
$user->roles()->attach(Role::where('name', 'admin')->first());
Customizing Components:
Extend Livewire components (e.g., app/Livewire/Admin/CustomCategories.php) and override methods like mount() or rules().
CRUD Operations:
/admin/categories/edit/{id}.Fortify Integration:
EnsureUserIsActive for custom user validation.php artisan vendor:publish --tag=fortify-migrations
php artisan migrate
Dynamic Admin Routes:
Register custom admin routes in routes/web.php:
Route::prefix('admin')->middleware(['auth'])->group(function () {
Route::get('/custom', [CustomAdminController::class, 'index']);
});
Volt Templates: Leverage Volt syntax in Livewire components for concise Blade-like syntax:
<x-admin-panel header="Availability">
@livewire('admin.control.availability.index')
</x-admin-panel>
Vormia\Vormia\Models\Role) for consistency.resources/css/flux/app.css to match your admin panel.emit('admin-updated')).app/Livewire/Admin/ to avoid losing changes during updates.File Overwrites:
resources/views/livewire/admin/ or app/View/Components/AdminPanel.php will be lost on updates.app/Livewire/Admin/CustomCategories.php) instead of modifying package files.Sidebar Injection:
Platform Flux group. If your sidebar structure differs, manually add items.resources/views/layouts/app/sidebar.blade.php for the correct group.Route Injection:
auth middleware group in routes/web.php. If this group doesn’t exist, routes won’t auto-inject.Fortify Dependencies:
laravel/fortify ^1.34. Mismatched versions may cause issues.composer require laravel/fortify:^1.34 if conflicts arise.Volt Compatibility:
composer require livewire/livewire:^4.1
Role Model Conflicts:
Vormia\Vormia\Models\Role. Custom role models may break functionality.Missing Sidebar Items:
Platform Flux group exists in your sidebar file.admin.admins.index).Livewire Component Not Loading:
app/Livewire/Admin/Admins/Index.php).php artisan view:clear
php artisan livewire:discover
Route Not Found:
routes/web.php.auth or verified).Fortify Errors:
EnsureUserIsActive is registered in Fortify’s AuthenticatedSessionController.php artisan migrate
Backup Before Updating:
php artisan ui-livewireflux-admin:update
storage/app/ui-livewireflux-admin-backups/.Custom Admin Routes:
app/Providers/RouteServiceProvider.php:
public function boot()
{
parent::boot();
$this->registerAdminRoutes();
}
Livewire Flux Integration:
wire:navigate for smooth transitions between admin pages:
<flux:sidebar.item :href="route('admin.categories.index')" wire:navigate>
Categories
</flux:sidebar.item>
Performance:
public function mount()
{
$this->loadData = false;
}
@if($loadData)
@livewire('admin.control.categories.index')
@endif
Testing:
$response = $this->actingAs($adminUser)->get('/admin/categories');
$response->assertStatus(200);
Extension Points:
public function updatedSearch()
{
$this->resetPage();
$this->loadData = true;
}
AdminPanel component for custom headers/footers:
public function render()
{
return view('components.admin-panel', [
'header' => $this->header ?? 'Default Header',
]);
}
How can I help you explore Laravel packages today?