realsocius/api-crud-generator

一个简单的Laravel库,允许您通过单个命令创建CRUD操作

1.2.1 2021-04-11 17:00 UTC

This package is not auto-updated.

Last update: 2024-09-24 08:27:57 UTC


README

一个简单的Laravel 8库,允许您通过单个命令创建CRUD操作。所有代码均从salmanzafar949/Laravel-Crud-Generator复制并更新到Laravel 8标准。

安装

composer require salmanzafar/laravel-crud-generator

功能

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

启用包(可选)

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

配置

发布配置文件

此步骤是必需的

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

用法

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

php artisan crud:generate ModelName

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

示例

php artisan crud:generate Car

CarController.php

<?php

namespace App\Http\Controllers;

use App\Http\Requests\CarRequest;
use App\Car;

class CarController extends Controller
{
    public function index()
    {
        $cars = Car::latest()->get();

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

    public function store(CarRequest $request)
    {
        $car = Car::create($request->all());

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

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

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

    public function update(CarRequest $request, $id)
    {
        $car = Car::findOrFail($id);
        $car->update($request->all());

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

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

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

Car.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

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

CarRequest.php

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

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

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

cars表迁移

<?php

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

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

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

Routes/api.php

Route::apiResource('cars', 'CarController');
现在所有基本API都已准备好使用,您可以通过在表中添加字段直接使用它们

在php 7.3和laravel 5.7以及laravel 5.8上进行了测试

目前此包仅支持API的CRUD操作