adminarchitect/core
Admin Architect Core is a Laravel package for rapidly building admin panels and CRUD interfaces from Eloquent models. It offers configurable columns, filters, actions, widgets, and access control, helping teams create maintainable back-office tools with less boilerplate and faster delivery.
composer require adminarchitect/core then confirm composer show adminarchitect/core. v2.4.0 is the first release in the 2.x line with Laravel 10 support, so require ^2.4 explicitly if you're on L10 — floating constraints resolved against older lockfiles will happily pull v2.3.0 and fail on framework incompatibilities. L10 means PHP 8.1+ on your side too.php artisan vendor:publish --provider="AdminArchitect\Core\AdminServiceProvider" and then run the install command (php artisan admin:install) to create the admin user, migrations and assets. Read the published files before editing them — most day-to-day behaviour is driven from them, not from code.config/administrator.php — the registry: title, auth guard, registered models, menu ordering, view overrides. This is the file you'll touch most.app/Admin/Resources/ — one class per model; the columns() / fields() / filters() / actions() methods are the real API surface.routes/ and php artisan route:list | grep admin — confirms the mount path and middleware stack before you go hunting for a 404.php artisan admin:scaffold User (or hand-write one resource class), log in at /admin, and confirm list → create → edit → delete works. Once one resource round-trips, the rest is repetition; if scaffolding a single model misbehaves, the problem is installation/config, not your resource code.columns() defines the index table, fields() the create/edit form, filters() the search bar, actions() the row and bulk operations. Keep these methods pure declarations — no queries, no side effects.App\Admin\Resources\Resource that sets shared defaults (eager loads, date formatting, permission checks) so per-model classes stay short and diffable.index data source to add with([...]) and withCount([...]) — list pages over related data are the single largest source of N+1 problems in admin panels, and closures in columns() that touch relations will fire per row otherwise.belongsTo as a select, belongsToMany as a multi-select, hasMany as a nested/embedded resource. For nested resources, verify the route parameter names line up with your foreign keys before assuming the package is broken.composer update adminarchitect/core, then diff your published config/views against the new vendor copies before republishing. Re-publish assets after the update (stale compiled JS/CSS is the most common "the update did nothing" cause).${var} string interpolation) will now surface in logs. If your error log gets noisy right after upgrading, check whether it's your resource classes or the package internals before filing anything.laravelcollective/html (Form::, HTML::) for form building. That package is effectively unmaintained — verify Composer actually resolves it on your L10 install, and be prepared to swap heavily used macros for Blade components if it doesn't.--force the publish step on a live app. It silently overwrites your customised config and views. Publish to a temp path (--path=) and diff, or copy the vendor file and merge by hand.administrator.php, not a missing file. Check the config entry, then php artisan route:list.php artisan config:clear && php artisan view:clear, plus any package-specific cache command you find in the service provider). Stale menus and unchanged columns after an edit are cache, not a bug — verify it once so you stop debugging it repeatedly.$fillable gates your form silently. Fields declared in fields() but absent from the model's $fillable are dropped without an error, producing "the form saves but the field is empty". Audit resource fields against $fillable when adding new ones.sometimes/nullable must match the field's actual optionality — otherwise edit forms fail for records created before a field existed.php artisan storage:link, an explicitly configured disk, and matching visibility settings; failures are quiet (field renders, nothing persists) rather than loud.doctrine/dbal. Confirm it's installed rather than guessing at a migration failure.composer dump-autoload)? (4) are caches clear? (5) is it a policy denial rendering as a blank page? That sequence resolves the large majority of "the admin is broken" reports.How can I help you explore Laravel packages today?