Git Product home page Git Product logo

crud-generator-laravel's Introduction

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. It includes :

  • Controller with all the code already written
  • Views (index, create, edit, show)
  • Model with relationships
  • Request file with validation rules
  • Migration file

And since 1.9.2, a complete REST API !

[ NEW ] Your voice matters! Participate in the polls and vote for future features and improvements

Installation

1. Run the following 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

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

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

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

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 this ๐Ÿ™‚

If you need a REST API instead of 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

Generate CRUD with livewire datatable

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

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

image

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. If 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. 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.

crud-generator-laravel's People

Contributors

misterdebug avatar hlombroso avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.