Salut à tous. Je suis en train de gerer l'insertion dans une base de données, pour les tables contenant pasdeclé étrangère, cela fonctionne sans problème, le probleme se trouve au niveau des tables contenant les clés etrangères. Si quelqu'un a une idée pour la resolution de mon probleme, je suis preneur. Merci d'avance.


Migration de la table users

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        })
Migration de la table appelapropositions

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Schema::create('appelapropositions', function (Blueprint $table) {
            $table->increments('id');
            $table->string('themePrioritaireRecherche');
            $table->double('montantFinancement');
            $table->date('dateDebutSoumissionNoteSuccinte');
            $table->date('dateFinSoumissionNoteSuccinte');
            $table->date('dateDebutSoumissionNoteDetaillee');
            $table->date('dateFinSoumissionNoteDetaillee');
            $table->timestamps();
 
        });
Migration de la table projets contenant l'id des tables appelapropositions et users

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Schema::create('projets', function (Blueprint $table) {
            $table->increments('id');
            $table->string('titreProjet');
            $table->string('motCleProjet');
            $table->double('montantDemande');
            $table->text('resumeProjet');
            $table->string('dureeProjet');
            $table->timestamps();
            $table->integer('idAppel')->unsigned();
            $table->integer('idUser')->unsigned();
        });
Fonction store() de controller de la table projets
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public function store(Request $request)
    {
        $this->validate($request,  [
            'titreProjet' => 'required|min:10',
            'motCleProjet' => 'required|min:5',
            'montantDemande' => 'required',
            'resumeProjet' => 'required|min:10',
            'dureeProjet' => 'required',
 
              ]);
              Projet::create([
            'titreProjet' => $request->titreProjet,
            'motCleProjet' => $request->motCleProjet,
            'montantDemande' => $request->montantDemande,
            'resumeProjet' => $request->resumeProjet,
            'dureeProjet' => $request->dureeProjet,
 
        ]);
        return redirect()->route('home');
    }
Modele de classe projets

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Projet extends Model
{
   public $table = 'projets';
 
    public $fillable = [
        'idAppel',
        'titreProjet',
        'motCleProjet',
        'montantDemande',
        'resumeProjet',
        'dureeProjet'
    ];
    public function user()
    {
        return $this->belongsTo(User::class);
    }
    public function appelaproposition()
    {
        return $this->belongsTo(Appelaproposition::class);
    }
 
}
Modele pour la table appelapropositions

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Appelaproposition extends Model
{
    public $table = 'appelapropositions';
 
    public $fillable = [
        'themePrioritaireRecherche',
        'montantFinancement',
        'dateDebutSoumissionNoteSuccinte',
        'dateFinSoumissionNoteSuccinte',
        'dateDebutSoumissionNoteDetaillee',
        'dateFinSoumissionNoteDetaillee'
    ];
 
    public function projets()
    {
        return $this->hasMany(Projet::class);
    }
}

Maintenant le code pour la recuperation des cles etrangeres la, vraiment, aucune idée

Merci davance.