mrmarchone/laravel-auto-crud
Generate full CRUD scaffolding for Laravel models via an interactive Artisan command. Auto-creates controllers, validation requests, routes, views, and optional API artifacts (cURL, Swagger), with overwrite/all options and support for repository pattern and Spatie Data.
Start by installing the package as a dev dependency: composer require mrmarchone/laravel-auto-crud --dev. Then publish the config with php artisan vendor:publish --provider="Mrmarchone\LaravelAutoCrud\LaravelAutoCrudServiceProvider" --tag="auto-crud-config". Run php artisan auto-crud:generate --help to see available options. The most common first use case is generating CRUD for a single model interactively: php artisan auto-crud:generate (select model(s) from list), or non-interactively for a known model: php artisan auto-crud:generate --model=User --type=web. This instantly creates controller, request, views, and routes — ideal for bootstrapping admin panels or internal tools.
UserRequest).--type=api --repository --pattern=spatie-data to generate API controllers with service layers, validated data objects, and resource collections. Add --swagger-api or --postman for OpenAPI/Postman docs.--repository (for service/IRouting pattern) or --pattern=spatie-data (for typed data objects), avoiding ad-hoc controller logic.--all or multiple --model= flags (e.g., --model=User --model=Post) to scaffold CRUD for several models in one command — useful for database-first workflows or legacy integrations.--no-interaction + --overwrite in CI pipelines or migration scripts to scaffold CRUD from YAML/JSON model definitions (e.g., via external tools).app/Models, set --model-path carefully — e.g., --model-path=app/Modules/Posts may create app/Http/Controllers/Modules/Posts/Controller.php. Double-check config/auto-crud.php for directories config to avoid unexpected folder nesting.--overwrite with care in collaborative environments; consider generating to a temporary directory first via a wrapper script to inspect changes.*Request files use simple rules() based onfillable; override in rules() manually or extend validation via custom request templates (extendable via config: request_namespace, request_base_class).view_namespace config or republish views and use extends/@section to reuse layouts. No automatic Blade component integration by default.--repository and --pattern=spatie-data require their respective packages (mrmarchone/laravel-service, spatie/laravel-data) to be installed, but no automatic install happens — fail at runtime if missing. Document as prerequisites.php artisan auto-crud:generate ... --type=web > routes/auto-crud.php. Consider adding auto-loading via a RouteServiceProvider hook if used heavily.-vvv for verbose output to see which models were found, which files skipped (if --overwrite not used), and template resolution paths — helps when patterns fail silently.How can I help you explore Laravel packages today?