Laravel 6

insérer données dans deux tables avec un seul formulaire. Laravel

Avatar de xXluxcaenXx
xXluxcaenXx

Bonjour,

Alors j'ai crée deux models et 1 seul controller, Poste et Entreprise et PosteController.

    public function store(Request $request)
    {
        $data = $request->validate([
            'nomPoste'=>'required|min:3',
            'descriptionPoste'=>'required|min:3'
        ]);
        $data2 = $request->validate([
            'nomEntreprise'=>'required|min:3',
            'adresseEntreprise'=>'required|min:3'
        ]);
        Entreprise::create($data2);
        Poste::create($data);
   
        return back();
    }

quand j'insére des données par les factory ça marche super bien car j'arrive a afficher un Poste avec son entreprise. mais dés l'insertion par formulaire j'ai une erreur comme : Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (projetetudiant.postes, CONSTRAINT postes_identreprise_foreign FOREIGN KEY (idEntreprise) REFERENCES entreprises (id) ON DELETE CASCADE).

Voilà je suis nouveau sur laravel, aidez-moi svp !

Posté il y a 1 mois
Avatar de xXluxcaenXx
xXluxcaenXx

up?

Posté il y a 1 mois
Avatar de KYoann
KYoann

Dans ta methode Store() il faut qu'après avoir enregistré ton entreprise, tu récupère son id, puis que tu l'utilise pour assigné l'entreprise au poste puisqu'il semble que tu ai défini une relation entre ces deux tables.

Posté il y a 1 mois

Vous ne pouvez pas répondre à ce sujet.