在laravel中将虚拟数据添加到“联接表”的最佳方法是什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在laravel中将虚拟数据添加到“联接表”的最佳方法是什么?相关的知识,希望对你有一定的参考价值。

我有两个具有多对多关系的模型,并且确实将它们与带有第三个表的模型结合在一起。

将伪数据插入第三个表而又不会因破坏外键小鸡约束而出现sql错误的最佳方法是什么?有没有一种方法可以使用前两个表中已经存在的相同数据?

我有这两个表:

class CreateLessonsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('Lessons', function (Blueprint $table) {
            $table->id();
            $table->unsignedBigInteger('user_id');
            $table->string('title', 100);
            $table->text('body');
            $table->timestamps();

            $table->foreign('user_id')
            ->references('id')
            ->on('users')
            ->onDelete('cascade');
        });
    }

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

第二个:

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

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

和“ join”第三张表:

class CreateLessonTagsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('lesson_tags', function (Blueprint $table) {
            $table->id();
            $table->unsignedBigInteger('lesson_id');
            $table->unsignedBigInteger('tag_id');


            $table->foreign('lesson_id')->references('id')->on('lessons')->onDelete('cascade');
            $table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');
            $table->timestamps();
        });
    }

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

提前感谢

答案
None

以上是关于在laravel中将虚拟数据添加到“联接表”的最佳方法是什么?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django 中将虚拟数据添加到数据表中?

EntityFrameworkCore - 将新列添加到联接表

在 Laravel 中将 Public 添加到资产路径

在 laravel 中将一些用户信息保存到不同的表中

在 Laravel 5 中将多行从动态表单保存到数据库

如何在 Laravel 5 中将自定义配置文件添加到 app/config?