Php 如何在学生进入Laravel的一个教室时将多个数据插入一行?
我正在从事类似电子学习网站的项目Php 如何在学生进入Laravel的一个教室时将多个数据插入一行?,php,mysql,sql,laravel,Php,Mysql,Sql,Laravel,我正在从事类似电子学习网站的项目 我在数据库中制作了学生、教师、课程和教室的表格 计划是从仪表板进入教室,然后新建一个教室,连接1名教师、1门课程和这么多学生 我可以通过ID在it中插入教师和课程,但是学生呢? 我试着做另一张桌子,把所有的东西连接起来,但不知道怎么做 我想给我的解决方案,无论如何,即使我必须遵循另一个计划 谢谢,致以最良好的问候 您应该创建透视表种类 教室\学生。您将在这里存储教室ID和学生ID。 与使用关系 如果需要,不要忘记“透视表”、“外键”、“其他键” 迁移 publi
我在数据库中制作了学生、教师、课程和教室的表格 计划是从仪表板进入教室,然后新建一个教室,连接1名教师、1门课程和这么多学生 我可以通过ID在it中插入教师和课程,但是学生呢? 我试着做另一张桌子,把所有的东西连接起来,但不知道怎么做 我想给我的解决方案,无论如何,即使我必须遵循另一个计划
谢谢,致以最良好的问候 您应该创建透视表种类
教室\学生
。您将在这里存储教室ID和学生ID。
与使用关系
如果需要,不要忘记“透视表”、“外键”、“其他键”
迁移
public function up()
{
Schema::create('class_room_student', function (Blueprint $table) {
$table->integer('student_id')->unsigned();
$table->foreign('student_id')->references('id')->on('students')->onDelete('cascade');
$table->integer('class_room_id')->unsigned();
$table->foreign('class_room_id')->references('id')->on('class_rooms')->onDelete('cascade');
$table->primary(['student_id', 'class_room_id']);
});
}
public function down()
{
Schema::dropIfExists('class_room_student');
}
首先让我们看看你的代码。第二,你可以使用关系(多对多和hasManyThrough),首先我还没有代码,我迷路了,第二,如何以这种方式使用关系?对不起,我是新来的拉威尔,谢谢我的教室控制器仍然是空的,因为我不知道读什么文档。哪一个???我只是想知道怎么做,你说了很多,所以我还在看:)那么我应该在教室里为每个学生排好队?这会让网站变得沉重吗?课程结束后,每个学生都将外出,直到我上下一节课,我需要手动选择学生,因为不是同一个班级的所有学生。可能吗?很抱歉回答得太长,你帮了很多忙,谢谢:)如果你使用索引,网站不会变得沉重和缓慢。您的数据表条目看起来像(stud_1-class_1 | stud_2-class_1 | stud_2-calss_2…)一个stud可以属于多个类。从长远来看,这不是很糟糕吗?这将产生大量数据,类不是一门课程,它不会总是同一个类,我每次都需要重新创建它,因为创建选定的名称时会收到包含缩放链接的消息,所以这就是为什么我失去了编辑帮助很大的感谢,但仍然需要如何从仪表板中选择它们?教室模型只需要学生id钥匙,对吗?这是这种情况下的标准解决方案。如果设置索引,应用程序将不会减速,即使有成千上万条记录。如果不需要,也可以删除数据。
public function up()
{
Schema::create('class_room_student', function (Blueprint $table) {
$table->integer('student_id')->unsigned();
$table->foreign('student_id')->references('id')->on('students')->onDelete('cascade');
$table->integer('class_room_id')->unsigned();
$table->foreign('class_room_id')->references('id')->on('class_rooms')->onDelete('cascade');
$table->primary(['student_id', 'class_room_id']);
});
}
public function down()
{
Schema::dropIfExists('class_room_student');
}