Salut depuis que j'ai ajouté une table association j'ai du mal a faire des migrations, je rencontre un message d'erreur dont le numero est SQLSTATE[42S21]:


public function up(): void
    {
        Schema::create('etudiant_matieres', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();

            $table->integer('etudiant_id')
                   ->unsigned()
                   ->index()
                   ->primary('etudiant_id')
                   ->autoIncrement()
                   ->index();;
            $table->foreign('etudiant_id')
                    ->references('id')
                    ->on('etudiants')
                    ->onUpdate('cascade')
                    ->nullable()
                    ->onDelete('cascade');

            $table->integer('matiere_id')  
                  ->unsigned()  
                  ->index();  
            $table->foreign('matiere_id')  
                  ->references('id')  
                  ->on('matieres')  
                  ->onUpdate('cascade')
                  ->nullable()
                  ->onDelete('cascade');  

       $table->primary(['etudiant_id', 'matiere_id']); 

Ce que je veux

ce que je veux c'est etablir un lien entre mes differentes tables et arriver a gere les relations plusieurs plusieurs

Ce que j'obtiens

les migrations se font sans probleme sur d'autres tables sauf sur la table association.

1 réponse


Hello :)

Tu as quoi comme message d'erreur?

Déjà il y a des problèmes dans ta migration etudiant_id:


public function up(): void
    {
        Schema::create('etudiant_matieres', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();

            $table->integer('etudiant_id')
                   ->unsigned()
                   ->index()
                   ->primary('etudiant_id')
                   ->autoIncrement()
                   ->index();; // Tu passes 2 fois index(), et tu mets 2 fois des points virgule ;;

            ...
   }