我是Laravel新手 我有两张桌子的学生,课程。 他们的关系是多对多的,当我尝试添加新学生并将该学生分配到许多已经存在的课程时,它正确添加了新学生,但无法添加到表格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中的未定义变量。 我试图解决它,但我不知道如何解决。
答案 0 :(得分: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');
}