Laravel 5

Supprimer une relation 1 to n pour en créer une nouvelle many to many

  • Avatar de dadub
    Membre depuis :
    03/12/2017
    Messages :
    10

    Bonjour,

    Ma base de données contient entre autre deux tables :

    users
    agrements

    Un user peut utiliser un agrement, un agrement peut être utilisé par plusieurs users.

    Dans ce cas, une relation many to many avec table pivot doit être créée.

    Le problème est que le dev précédent a créé une relation 1 à n (donc un user peut utiliser plusieurs agréments, mais un agrément n'appartient qu'à un seul user).

    Je débute avec Laravel et je voudrais coder correctement, c'est pour cela que je vous demande si ce qui est ci-dessous vous semble bon ?

    Mon idée est de :

    1- Créer une migration pour supprimer la relation entre les deux tables (je supprimerai donc le champ de la clé étrangère dans le up et je le remets dans le down au cas où on doit le remettre)
    2- Je crée une autre migration qui va créer la relation many to many avec la table pivot.

    Est-ce que c'est la bonne méthode où est-ce que je dois passer par le code directement ?

    Merci d'avance pour votre aide.

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2178

    Bonsoir,

    Le souci c'est s'il y a déjà des enregistrements, les relations vont être perdues...

  • Avatar de dadub
    Membre depuis :
    03/12/2017
    Messages :
    10

    Bonjour,

    Merci pour ta réponse rapide.

    Actuellement, ce sont des données de tests.

    Il est préférable de travailler avec des migrations ou via le code directement ?

    Merci pour l'aide.

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2178

    Ah si c'est en test pas de souci, il suffit de changer la migration et de repartir de zéro.

  • Avatar de dadub
    Membre depuis :
    03/12/2017
    Messages :
    10

    Merci à toi.

Vous ne pouvez pas répondre à ce sujet.