cendekia/laravel-admin-boilerplate
Laravel 5.x admin boilerplate package. Installs via Composer, publish vendor assets, adds a User→UserRole one-to-one relation, and (Laravel 5.4+) registers admin auth/logged middlewares in Kernel. Intended as a starting point for admin panels.
Installation
composer require cendekia/laravel-admin-boilerplate
Publish the package assets and config:
php artisan vendor:publish --provider="Cendekia\AdminBoilerplate\AdminBoilerplateServiceProvider" --tag="config"
php artisan vendor:publish --provider="Cendekia\AdminBoilerplate\AdminBoilerplateServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="Cendekia\AdminBoilerplate\AdminBoilerplateServiceProvider" --tag="views"
Run Migrations
php artisan migrate
Auth Setup
Configure your auth driver in config/auth.php to use the admin guard (if not already set up). Update the users table migration to include is_admin column if needed.
First Use Case
Access /admin to see the default dashboard. The package provides a basic admin panel with:
users table is configured).posts table (if it exists).config/admin-boilerplate.php – Customize routes, middleware, and default settings.routes/admin.php – Extend or override default admin routes.resources/views/vendor/admin-boilerplate/ – Override or extend Blade templates.app/Http/Middleware/AdminMiddleware.php – Modify admin access logic.Use the AdminBoilerplate facade to register custom resources or dashboards:
use Cendekia\AdminBoilerplate\Facades\AdminBoilerplate;
// Register a new resource (e.g., for 'products' table)
AdminBoilerplate::resource('products', \App\Http\Controllers\Admin\ProductController::class);
// Register a custom dashboard widget
AdminBoilerplate::dashboardWidget(\App\Widgets\RecentOrders::class);
Extend the base AdminController or use traits like CrudTrait for quick CRUD operations:
namespace App\Http\Controllers\Admin;
use Cendekia\AdminBoilerplate\Http\Controllers\AdminController;
use Cendekia\AdminBoilerplate\Traits\CrudTrait;
class ProductController extends AdminController
{
use CrudTrait;
protected $model = \App\Models\Product::class;
protected $view = 'admin.products.index';
}
Override default views by publishing them first, then modifying:
php artisan vendor:publish --tag="admin-boilerplate-views"
Edit files in resources/views/vendor/admin-boilerplate/.
Attach middleware to admin routes in config/admin-boilerplate.php:
'middleware' => [
'auth.admin',
'verified', // Example: Add email verification
],
Publish translations and customize language files:
php artisan vendor:publish --tag="admin-boilerplate-translations"
Edit resources/lang/vendor/admin-boilerplate/.
Use the AdminBoilerplate facade to expose API endpoints for admin resources:
AdminBoilerplate::apiResource('products', \App\Http\Controllers\Admin\Api\ProductController::class);
Route Conflicts
routes/admin.php does not conflict with existing routes. Use prefix('admin') or namespace to isolate admin routes.php artisan route:clear
Middleware Misconfiguration
auth.admin middleware fails, verify the admin guard is properly configured in config/auth.php.app/Http/Middleware/AdminMiddleware.php for custom logic.Database Migrations
users and posts tables. If your schema differs, override them or create new migrations.php artisan migrate:status to check pending migrations.View Overrides
php artisan vendor:publish --tag="admin-boilerplate-views"
Caching Issues
php artisan view:clear
php artisan config:clear
Log Admin Activity
Enable logging in config/admin-boilerplate.php:
'logging' => [
'enabled' => true,
'channel' => 'single',
],
Check logs in storage/logs/laravel.log.
Dump Admin Routes Use Tinker to inspect admin routes:
php artisan tinker
>>> \Route::getRoutes()->getByName('admin.*')->get();
Test Middleware
Temporarily disable middleware in config/admin-boilerplate.php to isolate issues:
'middleware' => [],
Custom Auth Providers
Extend the AdminUser model or create a custom provider for admin authentication.
Dynamic Permissions
Integrate with packages like spatie/laravel-permission for role-based access:
use Spatie\Permission\Traits\HasRoles;
class AdminUser extends User
{
use HasRoles;
}
Event Listeners
Listen to admin events (e.g., AdminBoilerplate\Events\ResourceCreated):
AdminBoilerplate::listen('resource.created', function ($resource, $model) {
// Custom logic after resource creation
});
API Resources
Use Laravel’s ApiResource to customize API responses for admin endpoints.
Custom Storage
Override the default storage paths in config/admin-boilerplate.php:
'storage' => [
'uploads' => 'storage/app/admin_uploads',
],
How can I help you explore Laravel packages today?