Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laraboard Admin Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Getting Started

Minimal Setup

  1. Installation

    composer require christhompsontldr/laraboard-admin
    

    Ensure laraman (dependency) is installed and configured first.

  2. 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
    
  3. First Use Case: Admin Dashboard

    • Add the admin middleware to your routes:
      Route::middleware(['web', 'auth', 'admin'])->group(function () {
          Route::get('/admin', [AdminController::class, 'dashboard'])->name('admin.dashboard');
      });
      
    • Register the middleware in app/Http/Kernel.php:
      protected $routeMiddleware = [
          'admin' => \LaraboardAdmin\Http\Middleware\AdminMiddleware::class,
      ];
      

Implementation Patterns

Core Workflows

  1. 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'];
    }
    
    • Auto-generates index, create, edit, and delete routes.
  2. 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/.

  3. 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);
    }
    
  4. API Endpoints Extend the package’s API routes in routes/admin.php:

    Route::apiResource('posts', \App\Http\Controllers\Admin\PostsApiController::class);
    

Gotchas and Tips

Pitfalls

  1. Missing Middleware Forgetting to register admin middleware in Kernel.php will break all admin routes. Verify with:

    php artisan route:list | grep admin
    
  2. Dependency Conflicts laraman (required) may conflict with other auth packages. Ensure:

    • laraman is configured before laraboard-admin.
    • No duplicate middleware bindings.
  3. Template Overrides Publishing views after initial setup may not reflect changes. Clear cached views:

    php artisan view:clear
    

Debugging

  • Route Debugging: Use php artisan route:list to verify admin routes.
  • Middleware Debugging: Add logging to AdminMiddleware:
    \Log::debug('AdminMiddleware triggered for user: ' . auth()->id());
    

Extension Points

  1. Custom Admin Panels Create modular admin sections by extending AdminResourceController:

    class CustomPanelController extends AdminResourceController
    {
        protected $panelName = 'custom_panel';
        // Override methods as needed
    }
    
  2. 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(...);
    
  3. Localization Extend language files in resources/lang/vendor/laraboard-admin:

    // en/admin.php
    return [
        'dashboard' => 'Custom Dashboard Title',
    ];
    

Performance Tips

  • Eager Load Relationships: Optimize AdminResourceController with with():
    protected $with = ['author', 'category'];
    
  • Pagination: Use paginate(10) instead of get() for large datasets.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport