• Stars
    star
    164
  • Rank 229,217 (Top 5 %)
  • Language
    PHP
  • Created almost 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Create a Laravel 10 CRUD in a few seconds

Crud Generator Laravel 9 and 10 (your time saver)

Crud Generator Laravel is a package that you can integrate in your Laravel to create a REAL CRUD :

  • controller with all the code already written
  • views (index, create, edit, show)
  • model with relationships
  • request file with rules
  • migration file

And since 1.9.2, a complete REST API !

Installation

1. Run composer command:

composer require mrdebug/crudgen --dev

2. If you don't use Laravel Collective Form package in your project, install it:

composer require laravelcollective/html not required if you don't need views

3. Publish config file and default-theme directory for views

php artisan vendor:publish --provider="Mrdebug\Crudgen\CrudgenServiceProvider"

Usage

Create CRUD (or REST API)

Let's make a real life example : Build a blog

A Post has many (hasMany) Comment and belongs to many (belongsToMany) Tag

A Post can have a title and a content fields

Let's do this 🙂

You need a REST API instead of a CRUD ? Read this wiki

CRUD generator command :

php artisan make:crud nameOfYourCrud "column1:type, column2" (theory)

php artisan make:crud post "title:string, content:text" (for our example)

Available options

When you call this command, controller, views and request are generated with your fields (here: title and content). image

Now let's add our relationships (Comment and Tag models) :

image

We add an hasMany relationship between our Post and Comment and a belongsToMany with Tag

If you look good, two migrations are created (create_posts AND create_post_tag).

create_posts will be your table for your Post model

create_post_tag is a pivot table to handle the belongsToMany relationship

Post model is generated too with both relationships added

image

Migration

Both migration files are created in your database/migrations directory. If necessary edit them and run :

php artisan migrate

Controller

A controller file is created in your app/Http/Controllers directory. All methods (index, create, store, show, edit, update, destroy) are filled with your fields.

Routes

To create your routes for this new controller, you can do this :

Route::resource('posts', PostsController::class); (don't forget to import your PostsController in your web.php file)

Screenshots

/posts/create : image

/posts : image

You can edit and delete too your new post. And a show page is created too 🙂

Request

A request file is created in your app/Http/Requests directory. By default, all fields are required, you can edit it according to your needs.

Views

A views directory is created in your resources/views directory. You want to customize generated views ? https://github.com/misterdebug/crud-generator-laravel/wiki/Custom-your-views

You can create views independently of the CRUD generator with : php artisan make:views nameOfYourDirectoryViews "column1:type, column2"

Finish your blog

Add your Comment CRUD (with a column comment and a post_id)

php artisan make:crud comment "comment:text, post_id:integer"

Add your Tag CRUD (with a column name)

php artisan make:crud tag "name"

FYI : Comment is a specific case and you can use make:commentable command Docs about commentable

Finished 🎉

Remove a CRUD

You can delete all files (except migrations) created by the make:crud command at any time (you don't need to remove all files by hand)

php artisan rm:crud nameOfYourCrud --force

php artisan rm:crud post --force (in our example)

--force (optional) can delete all files without confirmation

image

License

This package is licensed under the license MIT.