asz/generator
使用路由、请求和创建迁移文件(包括创建表等更多功能)生成 MVC
1.1
2020-11-13 19:41 UTC
Requires
- php: ^7.2
- laravel/framework: ~6.0|~7.0|~8.0
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']); });