IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

Enregistrer un fichier dans une table contenant une clé etrangère


Sujet :

Laravel PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Août 2017
    Messages : 43
    Par défaut Enregistrer un fichier dans une table contenant une clé etrangère
    Salut la communauté.
    Je veux enregistrer un fichier dans une table qui contient en plus un clé etrangère. Aun niveau de la vue, je choisi mon fichier, ainsi que les données de la table que je recupere dans la table père. Lors du clic sur le bouton enregistrer, cela echou. Pourtant le fichier à lui seul s'enregistre, mais jamais les 2 en meme temps.
    je sais plus quoi faire au niveau de ma fonction store pour qu'elle puisse considerer tous les champs.


    Voici l'erreur que je recois
    "SQLSTATE[HY000]: General error: 1364 Field 'noteconceptuelle_id' doesn't have a default value (SQL: insert into `evaluationnoteconceptuelles` (`name`, `size`, `updated_at`, `created_at`) values (word-exa2.pdf, 48127, 2018-12-18 14:12:51, 2018-12-18 14:12:51)) ◀"


    Voici ma fonction d'enregistrement.
    Merci davance

    public function store(Request $request)
    {
    if ($request->hasFile('file')){
    $filename = $request->file->getClientOriginalName();
    $filesize = $request->file->getClientSize();
    $request->file->storeAs('public/upload/Annexes', $filename);
    $file = new Evaluationnoteconceptuelle;
    $file->name = $filename;
    $file->size = $filesize;
    $file->save();




    $this->validate($request, [
    'noteconceptuelle_id' => 'required',

    ]);
    Evaluationnoteconceptuelle::create([


    'noteconceptuelle_id' => $request->noteconceptuelle_id,
    'noteConceptuelleretenue' => $request->noteConceptuelleretenue,
    'name' => $request->name,
    'size' => $request->size,
    ]);
    }

  2. #2
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Salut

    Alors dans la base de données, tu doit autoriser noteconceptuelle_id à avoir une valeur par défaut de 0.

    Puis dans ton code suivant, il manque les paranthèses à la fin du modèle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $file = new Evaluationnoteconceptuelle();
    Ensuite juste question sur le long terme, je nommerai mes modèles en anglais et avec une lettre majuscule à chaque début de mot :
    Evaluationnoteconceptuelle je le nommerait ConceptualEvaluation

  3. #3
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Août 2017
    Messages : 43
    Par défaut
    Le probleme est resolu. et voici le code.

    public function store(Request $request)
    {
    $this->validate($request, [
    'noteconceptuelle_id' => 'required',
    ]);

    if ($request->hasFile('file')){
    $filename = $request->file->getClientOriginalName();
    $filesize = $request->file->getClientSize();
    $request->file->storeAs('public/upload/rapportNoteConceptuelle', $filename);
    Evaluationnoteconceptuelle::create([
    'noteconceptuelle_id' => $request->noteconceptuelle_id,
    'noteConceptuelleretenue' => $request->noteConceptuelleretenue,
    'name' => $request->name,
    'size' => $request->size,
    'name' => $filename,
    'size' => $filesize,
    ]);
    }

    Les utres valeurs en dans la base de donées n'etaient pas passées au niveau de la fonction.

  4. #4
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Août 2017
    Messages : 43
    Par défaut
    Citation Envoyé par Happy Voir le message
    Salut

    Alors dans la base de données, tu doit autoriser noteconceptuelle_id à avoir une valeur par défaut de 0.

    Puis dans ton code suivant, il manque les paranthèses à la fin du modèle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $file = new Evaluationnoteconceptuelle();
    Ensuite juste question sur le long terme, je nommerai mes modèles en anglais et avec une lettre majuscule à chaque début de mot :
    Evaluationnoteconceptuelle je le nommerait ConceptualEvaluation

    Merci pour votre contribution.
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  2. Réponses: 4
    Dernier message: 21/05/2013, 20h59
  3. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  4. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50
  5. Fichier dans un champ d'une table
    Par BOUBOU81 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 09/10/2006, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo