christhompsontldr/laraboard-admin
Laraboard Admin adds an admin panel layer for Laraboard in Laravel, providing tools to manage boards, posts, users, and moderation settings. Designed to plug into existing Laraboard installs with sensible defaults and configurable access control.
Installation
composer require christhompsontldr/laraboard-admin
Ensure laraman (dependency) is installed and configured first.
Publish Assets & Config
php artisan vendor:publish --provider="LaraboardAdmin\LaraboardAdminServiceProvider" --tag="config"
php artisan vendor:publish --provider="LaraboardAdmin\LaraboardAdminServiceProvider" --tag="migrations"
Run migrations:
php artisan migrate
First Use Case: Admin Dashboard
Route::middleware(['web', 'auth', 'admin'])->group(function () {
Route::get('/admin', [AdminController::class, 'dashboard'])->name('admin.dashboard');
});
app/Http/Kernel.php:
protected $routeMiddleware = [
'admin' => \LaraboardAdmin\Http\Middleware\AdminMiddleware::class,
];
CRUD Operations
Use the built-in AdminResourceController trait for scaffolded admin panels:
namespace App\Http\Controllers\Admin;
use LaraboardAdmin\Http\Controllers\AdminResourceController;
class PostsController extends AdminResourceController
{
protected $model = \App\Models\Post::class;
protected $columns = ['id', 'title', 'created_at'];
protected $searchable = ['title'];
}
Customizing Views Override default Blade templates by publishing views:
php artisan vendor:publish --provider="LaraboardAdmin\LaraboardAdminServiceProvider" --tag="views"
Modify templates in resources/views/vendor/laraboard-admin/.
Integration with Laraman
Leverage laraman for authentication:
// In AdminMiddleware
public function handle($request, Closure $next)
{
if (!auth()->user()->isAdmin()) { // Assume Laraman's `isAdmin()` exists
abort(403);
}
return $next($request);
}
API Endpoints
Extend the package’s API routes in routes/admin.php:
Route::apiResource('posts', \App\Http\Controllers\Admin\PostsApiController::class);
Missing Middleware
Forgetting to register admin middleware in Kernel.php will break all admin routes. Verify with:
php artisan route:list | grep admin
Dependency Conflicts
laraman (required) may conflict with other auth packages. Ensure:
laraman is configured before laraboard-admin.Template Overrides Publishing views after initial setup may not reflect changes. Clear cached views:
php artisan view:clear
php artisan route:list to verify admin routes.AdminMiddleware:
\Log::debug('AdminMiddleware triggered for user: ' . auth()->id());
Custom Admin Panels
Create modular admin sections by extending AdminResourceController:
class CustomPanelController extends AdminResourceController
{
protected $panelName = 'custom_panel';
// Override methods as needed
}
Dynamic Permissions
Use Laravel’s gates/policies with laraman:
// In AuthServiceProvider
Gate::define('manage-posts', function ($user) {
return $user->hasRole('admin'); // Laraman role check
});
Then restrict routes:
Route::middleware(['admin', 'can:manage-posts'])->group(...);
Localization
Extend language files in resources/lang/vendor/laraboard-admin:
// en/admin.php
return [
'dashboard' => 'Custom Dashboard Title',
];
AdminResourceController with with():
protected $with = ['author', 'category'];
paginate(10) instead of get() for large datasets.How can I help you explore Laravel packages today?