Laravel сохранение данных из одной формы в разные таблицы базы данных - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу создать студента с некоторыми курсами.

Это Laravel представление

Я создал две разные таблицы: стол студентов

public function up()
    {
        Schema::create('students', function (Blueprint $table) {
            $table->id();
            $table->timestamps();
            $table->string('student_name');
            $table->string('first_name');
            $table->string('last_name');
            $table->string('email');
        });
    }

и таблица курсов.

public function up()
    {
        Schema::create('student_courses', function (Blueprint $table) {
            $table->id();
            $table->unsignedInteger('student_id');
            $table->string('course_name');
            $table->timestamps();
        });
    }

Таблица студентов создает информацию о студенте и сохраняет ее в таблице студентов.

Я хочу сохранить курсы в таблица курсов, с идентификатором студента. Они должны иметь отношения один ко многим. Как я могу сохранить различные курсы в таблице курсов с идентификатором специфицированного c студента?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Первое создание Отношение: В пользовательской модели создания: public function courses(){ return $this->hasMany(Course::class); }

В создании модели курса: public function students(){ return $this->belongsTo(Studnet::class); } Теперь в функции сохранения:

$course = new Course($request->all());
$user->courses()->save($course);
0 голосов
/ 14 апреля 2020

Вы не можете сохранить название курса в таблице курсов студентов. Вам необходимо создать отдельные таблицы для курсов. После этого вы можете использовать внешний ключ для сохранения данных студента и курсов в таблицу student_courses, как показано ниже.

public function up()
{
    Schema::create('student_courses', function (Blueprint $table) {
        $table->id();
        $table->integer('student_id')->unsigned()->nullable();
        $table->foreign('student_id')->references('id')->on('students')->onDelete('cascade');

        $table->integer('course_id')->unsigned()->nullable();
        $table->foreign('course_id')->references('id')->on('courses')->onDelete('cascade');
        $table->timestamps();
    });
}

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...