peltonsolutions / laravel-pivot-table-helper
用于Laravel的定制包,帮助创建BelongsToMany关联迁移。
0.2.0
2024-03-14 16:03 UTC
Requires
- php: ^8.2
- laravel/framework: ^11.0
Requires (Dev)
- pestphp/pest: ^2.33
- pestphp/pest-plugin-livewire: ^2.1
README
描述 WIP
待添加事项
- 允许可空关系,当存在多个时
- 添加 morphToMany
- 添加命令,自动从模型/关系创建迁移文件
- 如果目标表已经存在,则更新表而不是创建新表
- 添加 "down" 生成,确定目标表是否仅具有两个列关系。如果只有这两个字段,则将删除该表。如果还有更多字段,则将删除关系列。
安装
您可以使用以下命令通过composer安装该包:
composer require peltonsolutions/laravel-pivot-table-helper
用法
<?php use App\Models\User; use Illuminate\Database\Migrations\Migration; use Illuminate\Support\Facades\Schema; use PeltonSolutions\LaravelPivotTableHelper\Models\GenerateBelongsToManyMigration; return new class extends Migration { /** * Run the migrations. */ public function up(): void { GenerateBelongsToManyMigration::createMigration( (new User())->roles() ); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists((new User())->roles()->getTable()); } };
或者,您可以传递一个关系数组。这假设它们共享相同的交叉表,以及相同的父类
<?php use App\Models\User; use Illuminate\Database\Migrations\Migration; use Illuminate\Support\Facades\Schema; use PeltonSolutions\LaravelPivotTableHelper\Models\GenerateBelongsToManyMigration; return new class extends Migration { /** * Run the migrations. */ public function up(): void { $instance = new User(); GenerateBelongsToManyMigration::createMigration([ $instance->relationship1(), $instance->relationship2(), ]); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists((new User())->roles()->getTable()); } };
安全
如果您发现任何安全相关问题,请通过security@peltonsolutions.com发送电子邮件,而不是使用问题跟踪器。
鸣谢
许可证
laravel-pivot-table-helper是开源软件。它遵循MIT许可证,这是一种允许软件使用、修改和共享的宽松许可证。