aminul/crudgenerator

一个简单的Laravel库,允许您使用单条命令创建CRUD操作

dev-main 2023-08-30 11:12 UTC

This package is auto-updated.

Last update: 2024-09-30 01:49:11 UTC


README

一个简单的Laravel 8.*库,允许您使用单条命令创建CRUD操作

安装

composer require aminul/crudgenerator

功能

  • 控制器(已编写所有代码)
  • 模型
  • 迁移
  • 请求
  • 路由

启用包(可选)

此包实现了Laravel自动发现功能。安装后,包提供者和外观将自动添加

配置

发布配置文件

此步骤是必需的

php artisan vendor:publish --provider="Aminul\CrudGenerator\CrudGeneratorServiceProvider"

使用方法

发布配置文件后,只需运行以下命令

php artisan make:crud ModelName

就是这样,现在您的所有模型、控制器、迁移、路由请求都将自动创建,其中包含执行基本CRUD操作所需的所有代码

示例

php artisan make:crud Product

ProductController.php

<?php

namespace App\Http\Controllers;

use App\Http\Requests\ProductRequest;
use App\Product;

class ProductController extends Controller
{
    public function index()
    {
        $Products = Product::latest()->get();

        return response()->json($Products, 201);
    }

    public function store(ProductRequest $request)
    {
        $Product = Product::create($request->all());

        return response()->json($Product, 201);
    }

    public function show($id)
    {
        $Product = Product::findOrFail($id);

        return response()->json($Product);
    }

    public function update(ProductRequest $request, $id)
    {
        $Product = Product::findOrFail($id);
        $Product->update($request->all());

        return response()->json($Product, 200);
    }

    public function destroy($id)
    {
        Product::destroy($id);

        return response()->json(null, 204);
    }
}

Product.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    protected $guarded = ['id'];
}

ProductRequest.php

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ProductRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [];
    }
}

products表迁移

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateProductsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('products');
    }
}

Routes/web.php

Route::resource('products', 'ProductController'); 
现在所有基本API都准备好了,您可以直接通过在表中添加字段来使用它们