peltonsolutions/laravel-pivot-table-helper

用于Laravel的定制包,帮助创建BelongsToMany关联迁移。

0.2.0 2024-03-14 16:03 UTC

This package is auto-updated.

Last update: 2024-09-14 17:32:14 UTC


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许可证,这是一种允许软件使用、修改和共享的宽松许可证。