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 :

Deux Models dans un Controller (Methodes Edit & Update)


Sujet :

Laravel PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut Deux Models dans un Controller (Methodes Edit & Update)
    Bonjour,

    Pour faire simple, j'ai deux tables qui sont liées, la première s'intitule series, elle possède 3 champs, id, name, fk_mark.
    La seconde entité, se nomme marks, elle a 2 champs, id, name_mark.

    Mon but est de crée un CRUD, mais j'aimerais me focaliser sur l'UPDATE. Lorsque l'utilisateur cliquera sur la rubrique series dans l'application et qu'il souhaitera éditer un enregistrement, deux champs devront figurer le premier est le name et la fk_mark (clef étrangère de la table marks, donc on récupère le name_mark en liste déroulante).


    On part du principe que ma pk et fk a bien été relié et qu'il y a des enregistrements qui ont déjà été encodés dans le phpmyadmin.

    Voici comment est représenté mes formulaires

    1) Aperçu de l'enregistrement



    2) Saisie de la modification



    3) Mise à jour de l'enregistrement



    Donc en gros, mon système d'édite à l'air de fonctionner, mais maintenant j'aimerais récupérer la fk_mark en liste de déroulante...

    Je suis vraiment bloqué...

    Ma première question est-ce que je dois faire appel à mon model Mark dans mon SerieController ?

    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
    public function edit($id)
        {
     
            $series = Serie::find($id);
            return view('admin.series.edit', compact('series'));
        }
     
     
        public function update(Request $request, $id)
        {
            $request->validate([
                    'name' => 'required',
                    'fk_mark' => 'required'
            ]);
            $series = Serie::find($id);
            $series->name = $request->get('name');
            $series->fk_mark = $request->get('fk_mark');
            $series->save();
            return redirect()->route('series.index')
                      ->with('success', 'updated successfully');
        }

    Ma seconde question, avez-vous une idée de comment je dois créer ma liste déroulante dans ma vue series.edit?

    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
    <form class="panel-body" action="{{route('series.update',$series->id)}}" method="POST">
                  <input name="_method" type="hidden" value="PATCH">
                  @csrf
                  <fieldset class="form-group">
                    <label for="form-group-input-1">Name</label>
                    <input type="text" name="name" class="form-control" id="form-group-input-1" value="{{$series->name}}">
                  </fieldset>
     
                   <fieldset class="form-group">
                    <label for="form-group-input-1">Name</label>
                    <input type="text" name="fk_mark" class="form-control" id="form-group-input-1" value="{{$series->fk_mark}}">
                  </fieldset>
     
                  <button type="submit" class="btn btn-primary pull-right">MAJ</button>
                </form>

  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 : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Salut, peut être les relations eloquent pourraient t'aider :
    https://laravel.com/docs/5.8/eloquent-relationships

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur BackEnd - FrontEnd
    Inscrit en
    Avril 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur BackEnd - FrontEnd
    Secteur : Services de proximité

    Informations forums :
    Inscription : Avril 2015
    Messages : 90
    Par défaut
    Bonjour,

    Est ce que tes 2 models ont bien été reliés par une "relationship" ?

    Si non, poses toi la question des liens dont tu as besoin et ça va te déterminer quelle "relationship" ou relation tu auras besoin.

    A vue de nez sauf erreur de ma part, on peut dire qu'une mark possède plusieurs séries, donc le mieux serait d’utiliser une relation de type Many to many.
    Et via cette relation tu seras en mesure de remonter les clés Etrangères et donc d'alimenter ta liste déroulante.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/11/2014, 22h36
  2. Creer Deux buffer dans une methode
    Par lisco dans le forum Qt
    Réponses: 6
    Dernier message: 18/04/2009, 10h09
  3. Réponses: 3
    Dernier message: 28/05/2008, 15h32
  4. [win32] supprimer le curseur dans un controle "edit"
    Par Ashin dans le forum Visual C++
    Réponses: 7
    Dernier message: 18/06/2007, 09h20
  5. Utiliser les touches flèche dans un controle Edit
    Par Henri dans le forum Windows
    Réponses: 6
    Dernier message: 26/05/2006, 22h32

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