Как вставить данные в многие ко многим таблицы в Laravel 5.7

голоса
1

Я новичок в Laravel У меня есть две таблицы Student, курсы. Их отношение многих ко многим, когда я пытаюсь добавить новый студент и назначить студент многих курсов, которые уже существуют, это добавить новый студент правильно, но немогу добавить в таблицу 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>

Это, чтобы выбрать множество курсов.

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

Задан 27/11/2018 в 15:09
источник пользователем
На других языках...                            


1 ответов

голоса
1

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

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'); 
}
Ответил 13/12/2018 в 19:52
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more