Как вставить данные в таблицу «многие ко многим» в Laravel 5.7 - PullRequest
0 голосов
/ 27 ноября 2018

Я новичок в Ларавеле, у меня есть два стола Студент, Курсы.Их отношение много ко многим, когда я пытаюсь добавить нового студента и назначить студента многим уже существующим курсам, он правильно добавляет нового студента, но не может добавить в таблицу student_course. Я использую Laravel 5.7.

В модели ученика я определяю функциональные курсы

           public function courses()
    {
        return $this->belongsToMany('App\Course');
    }

А в модели курсов добавляю

   public function student()
{
    return $this->belongsToMany('App\Student');
}

В studentController

    public function store(Request $request , Courses courses)
{

    Student::createStudent($request->all());
    $courses = courses()->attach($request->courses);
    return redirect('/admin/student')->with('success','Has been added');
}

В ученикеcreate.blade

  <select name='courses[]' style="width:220px;" multiple="multiple">
                        @foreach( $courses as $course )
                        <option value="{{$course->id}}">{{$course->name_courses}}</option>
                      @endforeach
                      </select>

Это для выбора многих курсов.

Произошла ошибка, связанная с тем, что курсы являются неопределенной переменной в StudentController.Я пытаюсь решить ее, но понятия не имею, как это сделать.

1 Ответ

0 голосов
/ 13 декабря 2018

Это должна быть функция вашего магазина:

public function store(Request $request,Courses courses){
    $student = Student::createStudent($request->all());
    $courses = Course::find($request->get('courses'));
    $student->courses()->attach($courses);
    return redirect('/admin/student')->with('success','Has been added'); 
}
...