asz/generator

使用路由、请求和创建迁移文件(包括创建表等更多功能)生成 MVC

安装: 5

依赖项: 0

建议者: 0

安全性: 0

星标: 1

关注者: 1

分支: 0

语言:Blade

1.1 2020-11-13 19:41 UTC

This package is auto-updated.

Last update: 2024-09-21 15:45:22 UTC


README

Laravel 代码生成器包

概览

  • 这是一个用于生成代码的 Laravel 包
  • 添加了所有数据库数据类型和键

  • 当你填写表单时,该包将生成模型、控制器、请求、路由和迁移文件,包括在表单中添加的所有字段

安装

您可以通过 Composer 安装 asz/generator,将 "asz/generator": "^1.1" 添加到 composer.json 的要求中。或者

composer require asz/generator
  • 然后
composer dump-autoload

服务提供者

前往您的 config/app.php 文件并添加

 generator\GenServiceProvider::class ,

发布配置文件

$ php artisan vendor:publish --tag="config.generator"
$ php artisan config:cache
现在访问你的域名/generator 开始使用多选项生成你的代码
  • 您还可以通过 config/generator.php 更改默认路由并添加中间件

此包将生成

  • 包含数据类型列的迁移文件。以下是在生成 TestingTable 时的示例
<?php

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

class CreateTestingTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('testing', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email');
            $table->string('phone_number');
            $table->string('slug');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('testing');
    }
}
  • 包含特定表名和填充所有表列的模型。以相同的示例继续,当生成 TestTable 时
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Testing extends Model
{

    protected $table = 'Testing';
    protected $fillable=["name","email","phone_number","slug"] ;


}
  • 包含默认必填验证的请求文件。以相同的示例继续,当生成 TestTable 时
<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class TestingRequests extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' => 'required',
            'email' => 'required',
            'phone_number' => 'required',
            'slug' => 'required'
        ];
    }
}
  • 包含默认方法的控制器。以相同的示例继续,当生成 TestTable 时
<?php
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Testing;
use App\Http\Requests\TestingRequests;

class TestingController extends Controller
{

    public function index()
    {
          // your return route here
    }

    public function create()
    {
          // your return route here
    }


    public function store(TestingRequests $request )
    {
        Testing::create($request->validated());
          // your return route here
    }


    public function show($id)
    {
        $Testing = Testing::findOrFail($id);
          // your return route here
    }

    public function edit($id)
    {
        $Testing = Testing::findOrFail($id);
          // your return route here
    }


    public function update(TestingRequests $request, $id)
    {
         $Testing = Testing::findOrFail($id);
         $Testing->update($request->validated());
         // your return route here

    }


    public function destroy($id)
    {
       $Testing = Testing::findOrFail($id);
       $Testing->delete();
         // your return route here
    }
}
  • 路由生成,可以选择您的中间件 "默认为 null"
Route::group(['prefix' => 'testing', 'middleware' => ''], function () {
    Route::get('/', [App\Http\Controllers\testingController::class, 'index']);
    Route::post('/store', [App\Http\Controllers\testingController::class, 'store']);
    Route::get('/edit/{id}', [App\Http\Controllers\testingController::class, 'edit']);
    Route::put('/update/{id}', [App\Http\Controllers\testingController::class, 'update']);
    Route::delete('/destroy/{id}', [App\Http\Controllers\testingController::class, 'destroy']);
    Route::get('/show/{id}', [App\Http\Controllers\testingController::class, 'show']);
});