У меня есть две модели со многими отношениями, и я соединил их с моделью с третьей таблицей.
Каков наилучший способ вставить фиктивные данные в третью таблицу без получения 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');
}
}
и третий стол "соединения":
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');
}
}
Заранее спасибо