CRUD generator for admin side
Laravel >=5.1 PHP >= 5.5.9
Run, (*1)
composer require prem/crud-generator
Add the service provider to /config/app.php., (*2)
'providers' => [ ... Prem\Crudgenerator\CrudgeneratorServiceProvider::class, ],
Install laravelcollective/html helper package., (*3)
composer require laravelcollective/html
'providers' => [ ... Collective\Html\HtmlServiceProvider::class, ], 'aliases' => [ ... 'Form' => Collective\Html\FormFacade::class, 'HTML' => Collective\Html\HtmlFacade::class, ],
Run composer dump-autoload, (*4)
Publish vendor files of this package., (*5)
php artisan vendor:publish --provider="Prem\Crudgenerator\CrudgeneratorServiceProvider"
Note: You should have configured database for this operation., (*6)
php artisan crud:generate Posts --fields="name#string; body#text; category#select#options=entertain,tips,health" --view-path=admin --controller-namespace=Admin --route-group=admin
Options:, (*7)
Option | Description |
---|---|
--fields |
Fields name for the form & migration. e.g. --fields="title#string; content#text; category#select#options=technology,tips,health"
|
--route |
Include Crud route to routes.php? yes or no |
--pk |
The name of the primary key |
--view-path |
The name of the view path |
--controller-namespace |
The namespace of the controller - sub directories will be created |
--model-namespace |
The namespace that the model will be placed in - directories will be created |
--route-group |
Prefix of the route group |
--pagination |
The amount of models per page for index pages |
--indexes |
The fields to add an index to. append "#unique" to a field name to add a unique index. Create composite fields by separating fieldnames with a pipe (--indexes="title,fld1|fld2#unique" will create normal index on title, and unique composite on fld1 and fld2) |
--foreign-keys |
Any foreign keys for the table. e.g. --foreign-keys="owner_id#id#owners" where owner_id is the column name, id is the name of the field on the foreign table, and owners is the name of the foreign table |
--validations |
Validation rules for the form "col_name#rules_set" e.g. "title#min:10|max:30|required" - See https://laravel.com/docs/master/validation#available-validation-rules |
--relationships |
The relationships for the model. e.g. --relationships="comments#hasMany#App\Comment" in the format |
--localize |
Allow to localize. e.g. localize=yes |
--locales |
Locales language type. e.g. locals=en |
For controller:, (*8)
php artisan crud:controller PostsController --crud-name=posts --model-name=Post --view-path="directory" --route-group=admin
For model:, (*9)
php artisan crud:model Post --fillable="['title', 'body']"
For migration:, (*10)
php artisan crud:migration posts --schema="title#string; body#text"
For view:, (*11)
php artisan crud:view posts --fields="title#string; body#text" --view-path="directory" --route-group=admin
By default, the generator will attempt to append the crud route to your routes.php file. If you don't want the route added, you can use this option --route=no
., (*12)
By default, the generator will attempt to create the migration file. If you don't want to create migration file , you can use this option --migration=no
., (*13)
If you choose not to run migrations automatically , run migration command.*, (*14)
php artisan migrate
If you chose not to add the crud route in automatically (see above), you will need to include the route manually., (*15)
Route::resource('posts', 'PostsController');
These fields are supported for migration and view's form:, (*16)
Prem Kumar Singh, (*17)