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

Symfony PHP Discussion :

fichiers yml et base de données mysql


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 43
    Par défaut fichiers yml et base de données mysql
    Bonjour,

    Je travaille sur une application sous symfony v1.4.8. J'ai fais des changements (création , modification des tables, saisie d'enregistrement) directement sur mysql.

    Par exemple dans le répertoire /data/fixtures/fixtures.yml les informations sont anciennes et je souhaiterais mettre à jour.

    Quels sont les commandes qui me permettront de mettre a jour mes fichiers yml ?

    Merci !

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    http://symfony.com/legacy/doc/jobeet...3?orm=Doctrine
    Si vous avez décidé de créer les tables en écrivant des instructions SQL, vous pouvez générer le fichier de configuration correspondant schema.yml en exécutant la tâche doctrine:build-schema :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ php symfony doctrine:build-schema
    La tâche ci-dessus suppose que vous ayez une base de données configurées dans databases.yml. Nous vous montrerons comment configurer la base de données dans une étape suivante. [...]
    Pour propel c'est propel:build-schema


    A ma connaissance pas moyen de génerer les fixtures automatiquement vu que si tu veux insérer les données de base par sql, et bah tu n’utilises pas les fixtures ^^

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 43
    Par défaut
    Bonjour,


    Merci gototog pour ses éclaircissement.

    J'ai d'autres soucis qui ont été généré après avoir effectué les commandes suivantes :

    $ php symfony doctrine:build-schema

    $ php symfony doctrine:build-classes

    $ php symfony doctrine:build-model

    $ php symfony doctrine:build-forms

    $ php symfony cc

    Sur certaines de mes pages de mon interface les redirections ne font plus correctement.

    Par exemple sur une de mes pages où je peux modifier un contrat.

    La modification se fait correctement mais quand je valide j'ai :

    Le site Web a rencontré une erreur lors de l'extraction de http://localhost/contrat/update/contrat_id/1. Cela peut être dû à une opération de maintenance ou à une configuration incorrecte.

    Dans les log j'ai cette erreur :

    PHP Fatal error: Call to undefined method Doctrine_Collection::getContrat() in /var/www/application/lib/model/doctrine/Machine.class.php on line 46, referer: http://localhost/contrat/1/edit

    Ca fonctionnait bien avant avoir fait les différentes commandes. Je bloque et j'ai cette erreur sur plusieurs pages ou je fais des modifications..

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    je suppose que tu as perdu une relation de clef étrangère de Machine a Contrat.
    Ducoup ton modèle n'a plus la fonction renvoyant un contrat a partir d'une machine.
    Est ce que ca te semble pertinant ou pas, sans le modèle sous les yeux c'est dur ^^

    edit: le message d'erreur apparait quand? pendant tes commandes?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 43
    Par défaut
    Citation Envoyé par gototog Voir le message
    je suppose que tu as perdu une relation de clef étrangère de Machine a Contrat.
    Ducoup ton modèle n'a plus la fonction renvoyant un contrat a partir d'une machine.
    Est ce que ca te semble pertinant ou pas, sans le modèle sous les yeux c'est dur ^^

    edit: le message d'erreur apparait quand? pendant tes commandes?


    Le message d'erreur apparait lorsque je valide mon formulaire.

    Le champ se modifie correctement mais j'ai une page d'erreur.

    J'ai vérifier les clés étrangères cela me semble correct.

    Les pages fonctionnées correctement avant. Sauf que j'ai fais des ajouts dans la base de données directement en sql et par la suite j'ai voulu mettre à jour les fichiers schema.yml avec les différentes commandes.

    le code de l'erreur :
    PHP Fatal error: Call to undefined method Doctrine_Collection::getContrat()

    correspond à la ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $duree=$this->getListesites()->getContrat()->getContratDuree();
    Ya t-il une commande qui régénéré les relations ?

    Merci.

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    Alors, tu as une doctrine collection c'est a dire une ou plusieurs ListeSites récupérées en base de données, et tu essayes de faire une méthode qui s'applique non a la collection, mais a l'objet.
    (ducoup le message d'erreur explique que la méthode est inconnue pour la collection)

    Si tu es sur de n'avoir qu'une seule liste site par objet, essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $listeSite=$this->getListesites()->getFirst();
    $duree=listeSite->getContrat()->getContratDuree();

Discussions similaires

  1. insertion fichier dans une base de données MYSQL
    Par Globolite dans le forum Requêtes
    Réponses: 5
    Dernier message: 23/01/2013, 18h15
  2. Réponses: 2
    Dernier message: 21/05/2010, 20h57
  3. Fichier .dmp pour base de donnée Mysql
    Par 8itit dans le forum Import/Export
    Réponses: 2
    Dernier message: 29/04/2010, 15h54
  4. stocker des fichiers dans une base de donnée MYSQL
    Par Invité(e) dans le forum MySQL
    Réponses: 5
    Dernier message: 03/12/2009, 13h10
  5. Upload de fichier dans une base de données MySQL
    Par miko2009 dans le forum W4 Express
    Réponses: 1
    Dernier message: 07/01/2009, 19h16

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