Comment insérer des données dans plusieurs à plusieurs table Laravel 5.7

voix
1

Je suis nouveau dans Laravel J'ai deux tables étudiants, cours. Leur relation est beaucoup à beaucoup, lorsque je tente d'ajouter de nouveaux étudiants et affecter l'étudiant à de nombreux cours qui existent déjà, il ajouter un nouveau correctement étudiant, mais ne peux pas ajouter à la table student_course J'utilise Laravel 5.7.

Dans le modèle étudiant I cours de fonction définis

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

Et dans le modèle de cours ajouter

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

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

En étudiant create.blade

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

Ceci pour sélectionner plusieurs cours.

L'erreur est apparu que les cours est variable undefine dans StudentController. J'essaie de le résoudre, mais je ne sais pas comment.

Créé 27/11/2018 à 15:09
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Cela devrait être votre fonction de magasin:

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'); 
}
Créé 13/12/2018 à 19:52
source utilisateur

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