The artisan command can generate the following items:
- Migration File
- Model
- Repository
- Service
- Controller
- View
- index.blade.php
- show.blade.php
- create.blade.php
- edit.blade.php
- form.blade.php
- adjusts routes.php
- adjusts ModelFactory.php
Here is the full documentation.
- Installation
- Configuration
- Publish & Initialization
- Generator
- Supported Field Types
- Customize Templates
- Options
-
Add this package to your composer.json:
"require": { "doctrine/dbal": "^2.5", "laracasts/flash": "dev-master", "laravelcollective/html": "^5.2" } "require-dev": { "peaches/laravel-generator": "1.*" }
-
Run composer update
composer update
-
Add the ServiceProviders to the providers array in
config/app.php
.
As we are using these two packages laravelcollective/html & laracasts/flash as a dependency.
so we need to add those ServiceProviders as well.Collective\Html\HtmlServiceProvider::class, Laracasts\Flash\FlashServiceProvider::class, Peaches\Generator\GeneratorServiceProvider::class,
Also for convenience, add these facades in alias array in
config/app.php
.'Form' => Collective\Html\FormFacade::class, 'Html' => Collective\Html\HtmlFacade::class, 'Flash' => Laracasts\Flash\Flash::class
Publish Configuration file generator.php
.
php artisan vendor:publish
Config file (config/generator.php
) contains path for all generated files
base_controller
- Base Controller for all Controllers
base_name
- Base directory path for base classes.
path_migration
- Path where Migration file to be generated
path_model
- Path where Model file to be generated
path_repository
- Path where Repository file to be generated
path_service
- Path where Service file to be generated
path_controller
- Path where Controller file to be generated
path_views
- Path where views will be created
path_request
- Path where request file will be created
path_routes
- Path of routes.php (if you are using any custom routes file)
namespace_model
- Namespace of Model
namespace_repository
- Namespace of Repository
namespace_service
- Namespace of Service
namespace_controller
- Namespace of Controller
namespace_request
- Namespace for Request
model_extend_class
- Extend class of Models
main_layout
- Extend master layout
route_prefix
- Prefix of scaffold route
use_repository_layer
- Using repository layer
use_service_layer
- Using service layer
-
Publish some common views like
paginate.blade.php
. php artisan generator:publish -
Publish template. php artisan generator:publish --templates
-
Publish a base repository file php artisan generator:publish --baseRepository
Fire artisan command to generate Migration, Model, Scaffold with CRUD views from exist tables. This package can generate files from a specify table or from all tables in database.
This package require you to pass at least one argument for table name. If you want to pass many table name, a list table name will separate by comma.
Generate Migration From Exist Tables:
php artisan generator:make:migrate TableName
Generate CRUD Scaffold:
php artisan generator:make:scaffold TableName
Generate Model With Validation And Relationships:
php artisan generator:make:model TableName
Generate Factory From Exist Tables:
php artisan generator:make:factory TableName
Generate All Resource File:
php artisan generator:make:resource TableName
e.g. php artisan generator:migrate php artisan generator:migrate posts,comments
php artisan generator:make:model
php artisan generator:make:model posts,comments
php artisan generator:make:model --tables=posts,comments
php artisan generator:make:model --ignore=posts,comments
php artisan generator:make:model posts,comments --models=Post,Comment
php artisan generator:make:scaffold
php artisan generator:make:scaffold posts,comments
php artisan generator:make:scaffold --tables=posts,comments
php artisan generator:make:scaffold --ignore=posts,comments
php artisan generator:make:factory posts,comments
php artisan generator:make:resource posts,comments
Here is the list of supported field types with options:
- text
- textarea
- password
- checkbox
- number
- date
To use your own custom templates,
-
Publish templates to
/resources/generator-templates
php artisan generator:publish --templates
-
Leave only those templates that you want to change. Remove the templates that do not plan to change.
To paginate records, you can specify paginate option, e.g.
php artisan generator:make:scaffold posts --paginate=10
To use Auth trait, use auth option,
php artisan generator:make:model users --auth
Original Laravel Generator is created by Bluecode.
Bugs are welcomed :)