prolaxu/easy-curd

Package that helps you create crud faster.

v0.2 2023-03-29 18:24 UTC

This package is auto-updated.

Last update: 2024-05-30 01:00:14 UTC


README

Laravel package for automating simple Crud by providing required operation for creating curd api in lighting speed.

Installation

Install easy-crud using following command:

  composer require prolaxu/easy-curd

You can find this package in packagist: prolaxu/easy-curd

How to use?

It is very simple to use as you just have to use as shown below:

Suppose i have Post model, resource,request and controller i can make quick curd as shown below:

Step 1:

Use Curd on model:

...
use Prolaxu\EasyCrud\Traits\Crud;
...
class ModelName extends Model
{
    use Crud;
    ...
}

example:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Prolaxu\EasyCrud\Traits\Crud;

class Post extends Model
{
    use HasFactory,Crud;

    protected $table = 'posts';
    protected $fillable = [
        'title',
        'body',
        'slug',
        'status',
    ];
}

Step 2:

create request and resource for more control: request: for request rule. resource: for return rule on response.

php artisan make:resource PostResponse
php artisan make:resource Post/CreateRequest
php artisan make:resource Post/UpdateRequest

Step 3:

Create Controller.

example:

<?php

namespace App\Http\Controllers;

use App\Http\Requests\Post\UpdateRequest;
use App\Http\Requests\Post\CreateRequest;
use App\Http\Resources\PostResource;
use App\Models\Post;
use Prolaxu\EasyCrud\Controllers\BaseController;

class PostController extends BaseController
{
    public function __construct(){
        parent::__construct(
            Post::class,//model
            PostResource::class, // response
            CreateRequest::class, // create request
            UpdateRequest::class, // update request
        );
    }
}

Step 4:

Create Route:

Route::controller( PostController::class)->prefix('posts')->group(function (){
    Route::get('', 'index'); //list of items
    Route::post('', 'store'); // store the item
    Route::get('{id}', 'show');  //show one item
    Route::put('{id}', 'update'); // update one item
    Route::delete('delete', 'delete'); //delete multiple items
    Route::delete('{id}', 'destroy'); //delete one item
});

License

MIT

Authors