Partage
  • Partager sur Facebook
  • Partager sur Twitter

Symfony/Doctrine

Sujet résolu
    2 mars 2017 à 11:27:31

    Quand tu créé un Advert, je support sur c'est la table oc_advert qui est remplie ?

    /**
     * @ORM\Table(name="oc_advert")
     * @ORM\Entity(repositoryClass="OC\PlatformBundle\Repository\AdvertRepository")
     */
    class Advert
    /**
     * @ORM\Table(name="oc_image")
     * @ORM\Entity
     */
    class Image

    Que oc_advert existe c'est normal comme indiqué dans l'entity, mais tu n'aurais pas également oc_image ? Ce qui me surprend c'est surtout de voir 2 tables advert avec 2 noms différents. Pourrais-tu faire un screen de l'arborescence des fichiers du bundle ?

    -
    Edité par Radiax18 2 mars 2017 à 12:43:47

    • Partager sur Facebook
    • Partager sur Twitter

    </radiax>

      2 mars 2017 à 11:46:42

      pour éviter ce genre de plantage déjà:
      {% if advert is defined and advert.image is not null %}
          <img src="{{ advert.image.url }}" alt {{advert.image.alt}} heigth="60">
      {% else %}
          pas d'image a aficher
      {% endif %}



      -
      Edité par coolswing 2 mars 2017 à 11:49:18

      • Partager sur Facebook
      • Partager sur Twitter
        2 mars 2017 à 12:48:59

        coolswing a écrit:

        pour éviter ce genre de plantage déjà:

        {% if advert is defined and advert.image is not null %}
            <img src="{{ advert.image.url }}" alt {{advert.image.alt}} heigth="60">
        {% else %}
            pas d'image a afficher
        {% endif %}

        Bonne idée mais ça ne résout malheureusement pas le problème de l'image qui ne se créé pas dans la DB... Ça contourne le problème sans réellement le résoudre.

        Je vais quand même attendre de voir l'arborescence des fichiers mais serait-il également possible de m'envoyer une archive du projet Symfony ? Je serais plus à même de voir d'où viens l'erreur et si je la trouve je te ferais un retour de manière à t'expliquer le plus précisément possible ;) 

        -
        Edité par Radiax18 2 mars 2017 à 12:49:45

        • Partager sur Facebook
        • Partager sur Twitter

        </radiax>

          2 mars 2017 à 14:27:30

          voici l’arborescence !

          Voici le projet => https://drive.google.com/open?id=0B4ocEBPN_jodZExpbnpwRUVvZUE

          Sinon j'avais bien mis {% if advert is defined and advert.image is not null %}mais je l'ai justement enlevé pour voir l'erreur ;)

          • Partager sur Facebook
          • Partager sur Twitter
            2 mars 2017 à 15:11:34

            Merci, je vais essayer de faire ça avant la fin du week-end.
            • Partager sur Facebook
            • Partager sur Twitter

            </radiax>

              2 mars 2017 à 15:42:29

              T'inquiète tu peux prendre ton temps ;)
              • Partager sur Facebook
              • Partager sur Twitter
                3 mars 2017 à 13:31:17

                je viens de regarder tes entités et j'ai regardé par rapport a la doc de doctrine et par rapport a d'autre projet et il me semble bien que tes annotation sont incomplètes.
                il te manque un JoinColumn avec le nom de ta colonne et la referencedColumnName d'un coté et de l'autre un mappedBy (fin tu verra bien si tu cliques sur mon lien)

                Si tu utilise memecache n'oublie pas de le flusher (sinon les motif de tes entité ne seront pas prisent en compte), vide ton cache symfony et dit nous ce qui ce passe :)

                -
                Edité par coolswing 3 mars 2017 à 13:33:56

                • Partager sur Facebook
                • Partager sur Twitter
                  4 mars 2017 à 15:56:59

                  D'accord merci ! Je vais essayé de faire ça demain soir :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 mars 2017 à 18:18:15

                    Du coup j'ai essayé mais rien de mieux...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 mars 2017 à 11:16:35

                      Je viens enfin de prendre le temps de regarder ton projet et assez étrangement tout fonctionne chez moi avec une modification mineure. Je n'ai pas touché aux fichiers du bundle mais uniquement aux fichier parameters.yml. De même il faudra modifier le fichier parameters.yml.dist afin que le parameters.yml ne soit pas modifier à chaque update de ton projet Symfony.

                      Voici les lignes que j'ai modifié:

                      //Symfony\app\config\parameters.yml
                      
                      parameters:
                          database_host: localhost
                          database_port: null
                          database_name: nom_de_ma_base
                          database_user: root
                          database_password: null
                      //Symfony\app\config\parameters.yml.dist
                      
                      parameters:
                          database_host:     localhost
                          database_port:     ~
                          database_name:     nom_de_ma_base
                          database_user:     root
                          database_password: ~

                      Je précise que j'utilise Wamp avec les paramètres par défaut (sauf localhost qui est automatiquement ajouté dans l'utl) pour tester ton projet Il se peut donc que ces paramètres soient différents chez toi, notamment host (celui de l'url pour accéder à phpmyadmin), name et user. Une fois modifié oublie pas les commandes suivantes:

                      php bin/console doctrine:schema:update --dump-sql
                      php bin/console doctrine:schema:update --force

                      Ta base de données sera a jour et je l'espère ne posera plus de problèmes ;)

                      • Partager sur Facebook
                      • Partager sur Twitter

                      </radiax>

                        8 mars 2017 à 13:52:00

                        Merci beaucoup d'avoir regardé ;)

                        J'ai essayer de changer des paramètres mais toujours la même erreur lorsque j'update la BD :

                        • Partager sur Facebook
                        • Partager sur Twitter
                          8 mars 2017 à 17:16:20

                          Je vais réessayer depuis mon PC fixe, en attendant supprime la DB et recréé la avec les commandes. J'aimerais bien aussi savoir quelle url est utilisée quand tu regarde une page du site.

                          -
                          Edité par Radiax18 8 mars 2017 à 17:17:37

                          • Partager sur Facebook
                          • Partager sur Twitter

                          </radiax>

                            8 mars 2017 à 17:24:37

                            D'accord !

                            http://localhost/Symfony/web/app_dev.php/platform => pour la page d'accueil

                            http://localhost/Symfony/web/app_dev.php/platform/advert/1 => la page pour voir une annonce (celle qui ne fonctionne pas)

                            J'ai tout recréé tout bien mais l'erreur persiste... :(

                            -
                            Edité par Anto2 8 mars 2017 à 17:47:05

                            • Partager sur Facebook
                            • Partager sur Twitter
                              8 mars 2017 à 19:17:37

                              Bon je vais essayer de détailler toutes les manipulations que je fais, sait on jamais:

                              • Je télécharge et installe Wamp 3.0.6 puis sa mise à jour 3.0.8
                              • Je sélectionne la version 7.0.10 de PHP (par défaut j'ai aussi MySQL 5.7.14 et Apache 2.4.23) puis dande l'ajout de localhost dans l'url
                              • Je vais dans les paramètres de Windows pour que la commande PHP soit reconnue dans la console et sélectionne php 7.0.10 de Wamp
                              • Je décompresse l'archive Symfony que tu nous à passé
                              • Je modifie le fichier parameters.yml comme ceci
                              # This file is auto-generated during the composer install
                              parameters:
                                  database_host: localhost
                                  database_port: null
                                  database_name: test_sf3
                                  database_user: root
                                  database_password: null
                                  mailer_transport: smtp
                                  mailer_host: 127.0.0.1
                                  mailer_user: null
                                  mailer_password: null
                                  secret: e0fba89ac8598748b1c7bd36c5a858eb99625be2
                              • Je modifie le fichier parameters.yml.dist comme ceci
                              # This file is a "template" of what your parameters.yml file should look like
                              # Set parameters here that may be different on each deployment target of the app, e.g. development, staging, production.
                              # http://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
                              parameters:
                                  database_host:     localhost
                                  database_port:     ~
                                  database_name:     test_sf3
                                  database_user:     root
                                  database_password: ~
                                  # You should uncomment this if you want use pdo_sqlite
                                  # database_path: "%kernel.root_dir%/data.db3"
                              
                                  mailer_transport:  smtp
                                  mailer_host:       127.0.0.1
                                  mailer_user:       ~
                                  mailer_password:   ~
                              
                                  # A secret key that's used to generate certain security-related tokens
                                  secret:            ThisTokenIsNotSoSecretChangeIt
                              • Je démarre la console
                              • Je fais les commandes suivantes (dans l'ordre): 
                              php bin/console assets:install
                              
                              php bin/console doctrine:database:create
                              php bin/console doctrine:schema:update --dump-sql
                              php bin/console doctrine:schema:update --force
                              
                              php bin/console cache:clear
                              php bin/console cache:clear -e prod

                               C'est justement ce que je comprends pas, c'est que finalement je ne fais rien de spécial, juste de quoi mettre le projet sur mon PC et tout fonctionne. Prends le temps de vérifier les mises à jour des logiciels et langages, et vérifie que toutes les manipulation que j'ai faites le soient aussi chez toi. Si cela ne fonctionne pas, supprime tout, désinstalle Wamp et refait les manipulations tout comme moi.

                              Si t'as des question ou des problèmes hésite pas à demander je suis toujours dispo ;)

                              -
                              Edité par Radiax18 8 mars 2017 à 19:18:28

                              • Partager sur Facebook
                              • Partager sur Twitter

                              </radiax>

                                8 mars 2017 à 20:36:58

                                D'accord merci ! :)

                                Je viens retenter et ça marche plus ou moins bien,

                                Quand je clique sur Recherche développeur Symfony ca fonctionne !!!!!! :D

                                Mais quand je clique sur Recherche développpeur Symfony par Alexandre, le 08/03/2017 et bien il y a l'erreur    (cf image)

                                Le premier lien me mène sur http://localhost/Symfony/web/app_dev.php/platform/advert/2 et le deuxième sur http://localhost/Symfony/web/app_dev.php/platform/advert/1 

                                J'ai essayé de chercher dans le code pourquoi mais j'avoue que je comprend pas bien, c'est peut être normal mais j'ai dû rater quelque chose...

                                J'ai re-cliquer plusieurs fois sur Ajouter une annonceet à chaque lien l'image apparait sauf  sur recherche développeur symfony à droite (advert/1). Je suis allé voir dans ma base de donnée et image_id de l'id1 = NULL =>

                                                ______________________________________

                                Du coup j'ai compris pourquoi ça affichait pas d'image quand l'id = 1

                                La case NULL était coché dans ma BD pour l'id1

                                Mais pourquoi ??

                                -
                                Edité par Anto2 8 mars 2017 à 21:14:10

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  9 mars 2017 à 8:11:13

                                  Bonne question, as-tu supprimé la db avant de faire les manipulations ? Car si non, alors il s'agit probablement de l'advert créé quand tu avais le bug ;) Ce qui semble le confirmer, c'est que les derniers advert n'ont pas ce problème, et que l'id de l'image = id de l'advert -1.
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  </radiax>

                                    9 mars 2017 à 9:14:01

                                    Pourtant j'avais bien supprimer toute ma base...
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      10 mars 2017 à 14:09:34

                                      Du coup ça fonctionne quand tu créé un advert ? Si c'est la cas supprime la DB, génère à nouveau la DB et refait les tests ;)
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      </radiax>

                                        14 mars 2017 à 15:46:38

                                        Oui du coup tout fonctionne ;)

                                        Merci à tous pour votre aide :D

                                        -
                                        Edité par Anto2 14 mars 2017 à 15:46:57

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          14 mars 2017 à 16:33:38

                                          Super nouvelle, je suis content d'apprendre que tout fonctionne ^^
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          </radiax>

                                          Symfony/Doctrine

                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                          • Editeur
                                          • Markdown