larakit/laravel-larakit-adminlte
Installation
composer require larakit/laravel-larakit-adminlte
Publish the package assets and config:
php artisan vendor:publish --provider="Larakit\AdminLTE\AdminLTEServiceProvider" --tag="public"
php artisan vendor:publish --provider="Larakit\AdminLTE\AdminLTEServiceProvider" --tag="config"
Basic Usage
Add the middleware to your app/Http/Kernel.php:
protected $middlewareGroups = [
'web' => [
// ...
\Larakit\AdminLTE\Middleware\CheckForAdminLTE::class,
],
];
First Admin Page
Create a route in routes/web.php:
Route::get('/admin/dashboard', function () {
return view('adminlte::dashboard');
});
Customize Layout Override the default layout by publishing views:
php artisan vendor:publish --provider="Larakit\AdminLTE\AdminLTEServiceProvider" --tag="views"
Modify resources/views/vendor/adminlte/layouts/app.blade.php to fit your branding.
adminlte::dashboard) as a starting point.resources/views/partials/admin/sidebar.blade.php).use Larakit\AdminLTE\Widgets\Widget;
Widget::box('Box Title', 'Box Content')->style('blue')->render();
Layout Customization
app.blade.php) and partials (sidebar, navbar, footer).@stack and @include to inject dynamic content:
@include('admin.partials.sidebar')
@stack('scripts')
Dynamic Sidebars
sidebar() helper to generate dynamic sidebars:
sidebar()
->add('Dashboard', 'dashboard', 'fa fa-dashboard')
->add('Users', 'users.index', 'fa fa-users')
->render();
config/adminlte.php) for reusability.Widgets and Boxes
Widget::box('Stats', $statsData)
->style('green')
->icon('fa fa-chart-bar')
->render();
@widgetStack('stats')
Authentication
login.blade.php, register.blade.php) by publishing them:
php artisan vendor:publish --provider="Larakit\AdminLTE\AdminLTEServiceProvider" --tag="auth-views"
Blade Directives
@adminLTE directives for common tasks:
@adminLTE
@sidebar
@item('Dashboard', 'dashboard', 'fa fa-dashboard')
@endsidebar
@endadminLTE
JavaScript and CSS
app.blade.php or conditionally in views:
@push('styles')
<link rel="stylesheet" href="{{ asset('vendor/adminlte/plugins/chartjs/Chart.min.css') }}">
@endpush
Multi-Tenancy
$sidebar = sidebar()->addTenancyAwareItems($user->tenancyItems());
Localization
resources/lang/{locale}/adminlte.php:
return [
'sidebar' => [
'dashboard' => 'Приборная панель',
],
];
Middleware Conflicts
CheckForAdminLTE middleware is placed after auth middleware in Kernel.php to avoid redirect loops.protected $middlewareGroups = [
'web' => [
// ...
\Larakit\AdminLTE\Middleware\CheckForAdminLTE::class,
],
'api' => [
// No AdminLTE middleware here
],
];
Asset Loading Issues
public publish step was run and assets are linked correctly in app.blade.php:
<link rel="stylesheet" href="{{ asset('vendor/adminlte/dist/css/adminlte.min.css') }}">
php artisan view:clear
php artisan config:clear
Sidebar Item Routing
->add('Users', route('users.index'), 'fa fa-users')
/admin/users) to prevent route caching issues.Theme Switching
skin-blue, skin-black) are applied via the data-skin attribute in app.blade.php. Override this dynamically:
<body class="hold-transition {{ config('adminlte.skin') }}">
View Overrides
php artisan view:clear
php artisan vendor:publish --tag=views --force to republish views.Widget Debugging
Widget::debug(true); // Add to a service provider's boot method
Configuration
config/adminlte.php for typos or incorrect paths. Use:
php artisan config:dump
php artisan vendor:publish --provider="Larakit\AdminLTE\AdminLTEServiceProvider" --tag="config" --force
Custom Widgets
Widget class to create domain-specific widgets:
namespace App\Widgets;
use Larakit\AdminLTE\Widgets\Widget;
class UserStatsWidget extends Widget {
public function __construct($data) {
parent::__construct('User Stats', $data);
$this->style('purple')->icon('fa fa-users');
}
}
Dynamic Layouts
view()->composer('adminlte::layouts.app', function ($view) {
$view->with('dynamicSidebar', $this->getSidebarItems());
});
Plugin Integration
php artisan vendor:publish --tag=datatables-assets
app.blade.php or specific views:
@push('scripts')
<script src="{{ asset('vendor/datatables/js/jquery.dataTables.min.js') }}"></script>
@endpush
Event Listeners
AdminLTEInitialized) to hook into the initialization process:
Event::listen('AdminLTEInitialized', function () {
// Modify the layout or add global data
});
How can I help you explore Laravel packages today?