在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中将虚拟数据添加到“联接表”的最佳方法是什么?的主要内容,如果未能解决你的问题,请参考以下文章