Php 如何在Laravel 5.7的多对多表中插入数据

Php 如何在Laravel 5.7的多对多表中插入数据,php,laravel,insert,many-to-many,Php,Laravel,Insert,Many To Many,我是新来的 我有两张桌子,学生课。 它们之间的关系是多对多的,当我尝试添加新学生并将该学生分配到许多已经存在的课程时,它会正确添加新学生,但无法添加到表student\u课程 我使用的是Laravel 5.7 在学生模型中,我定义了函数课程 public function courses() { return $this->belongsToMany('App\Course'); } 在课程模式中,我添加了 public fun

我是新来的 我有两张桌子,学生课。 它们之间的关系是多对多的,当我尝试添加新学生并将该学生分配到许多已经存在的课程时,它会正确添加新学生,但无法添加到表student\u课程 我使用的是Laravel 5.7

在学生模型中,我定义了函数课程

           public function courses()
    {
        return $this->belongsToMany('App\Course');
    }
在课程模式中,我添加了

   public function student()
{
    return $this->belongsToMany('App\Student');
}
学生控制器

    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');
}
在student.blade中创建

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

@foreach($课程作为$课程)
{{$course->name_courses}
@endforeach
这需要选择许多课程

课程在StudentController中是未定义变量时发生的错误。
我试图解决它,但我不知道如何解决。

这应该是您的存储功能:

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'); 
}

将代码以文本而非图像的形式发布。它成功了,非常感谢@费利佩·杜阿尔特这不是多对多的关系。你需要三张桌子@DaliaNajeh你是怎么解决的?你没有提供解决问题的方法。