Installation Add the bundle via Composer:
composer require aspl/admin-bundle
Register the bundle in config/app.php under providers:
Aspl\AdminBundle\AdminBundle::class,
Publish assets and configurations:
php artisan vendor:publish --provider="Aspl\AdminBundle\AdminBundle" --tag=config
php artisan vendor:publish --provider="Aspl\AdminBundle\AdminBundle" --tag=assets
Basic Setup
routes/web.php:
use Aspl\AdminBundle\Routing\AdminRouter;
$adminRouter = new AdminRouter();
$adminRouter->mapRoutes();
php artisan migrate
First Use Case: Quick Admin Panel
/admin (default route).CRUD Operations
@ORM\Table and @ORM\Entity to auto-generate admin interfaces.resources/views/admin/ or extend controllers via traits:
use Aspl\AdminBundle\Controller\AdminController;
class CustomAdminController extends AdminController {
// Override methods like index(), create(), etc.
}
Widgets and Dashboards
StatsWidget, RecentActivityWidget in resources/views/admin/dashboard.html.twig.Aspl\AdminBundle\Widget\AbstractWidget:
class MyCustomWidget extends AbstractWidget {
public function render() { ... }
}
Permissions and Roles
config/admin.yml:
roles:
admin: [ALL]
editor: [CREATE, EDIT, DELETE]
admin.auth middleware:
Route::get('/admin/secure', function() { ... })->middleware('admin.auth');
Theming and Assets
resources/assets/admin/ and compile with Laravel Mix.admin_asset() helper for versioned assets:
<link href="{{ admin_asset('css/admin.css') }}" rel="stylesheet">
Integration with Existing Code
$this->container->set('my.service', function() { ... });
admin.entity.created):
Event::listen('admin.entity.created', function($entity) { ... });
Route Conflicts
/admin route may clash with existing routes.config/admin.yml:
admin:
prefix: '/backend'
Entity Auto-Generation Quirks
admin options in your entity:
/**
* @ORM\Entity(repositoryClass="App\Repository\MyEntityRepository")
* @Aspl\AdminBundle\Annotation\Admin(
* title="My Entity",
* list=[...],
* form=[...]
* )
*/
Asset Loading Failures
admin_asset() helper is properly configured in AppServiceProvider:
public function boot() {
AdminBundle::setAssetPath(public_path('admin'));
}
Permission System Overrides
admin.auth middleware is correctly registered in Kernel.php:
protected $routeMiddleware = [
'admin.auth' => \Aspl\AdminBundle\Http\Middleware\AdminAuth::class,
];
Database Migrations
php artisan migrate --path=vendor/aspl/admin-bundle/src/Resources/migrations
Debugging Admin Routes
php artisan route:list --path=/admin
Extending the Bundle
AdminController by binding it in services.yml:
services:
aspl_admin.controller.admin:
class: App\Controller\CustomAdminController
tags: ['controller.service_arguments']
Performance Optimization
isVisible() in widgets to conditionally render:
public function isVisible() {
return $this->getUser()->hasRole('admin');
}
Localization
resources/lang/admin/ to support multiple languages.Testing
AdminTestCase for testing admin routes:
use Aspl\AdminBundle\Tests\AdminTestCase;
class MyAdminTest extends AdminTestCase {
public function testAdminDashboard() {
$this->loginAsAdmin();
$this->visit('/admin');
// Assertions...
}
}
How can I help you explore Laravel packages today?