devsi/crudy

Advanced Laravel Crud Generator

1.0.0 2023-08-30 21:49 UTC

This package is auto-updated.

Last update: 2024-10-30 01:59:51 UTC


README

Crudy (Crud Generator)

  • Controller
  • Views (index, create, edit, show)
  • Model (with relationships)
  • Request (file with validation rules)
  • Migration

Installation

1. Run the following composer command:

composer require devsi/crudy

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

composer require laravelcollective/html

(Note: This step is not required if you don't need views.)

3. Publish the configuration file and the default-theme directory for views:

php artisan vendor:publish --provider="devsi\crudy\CrudyServiceProvider"

Usage

Create CRUD (or REST API)

Let's illustrate with a real life example : Building 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 it

If you need a REST API instead of CRUD, just do it: php artisan make:rest-api nameOfYourCrud "column1:type, column2"

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 [string,text,integer]

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

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

Two migrations are created (create_posts AND create_post_tag).

create_posts is 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 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 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"

Finished 🎉

Remove a CRUD

You can delete all files (except migrations) created by the make:crud command at any time. No need to remove files manually :

php artisan rm:crud nameOfYourCrud --force

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

The --force flag (optional) deletes all files without confirmation

image

License

This package is licensed under the license MIT.