Symfony2 obtenir le code d'erreur pour la fonction d'injection de
Je suis à l'aide de Symfony et de la création d'un soft avec 3 niveaux (client, apache, mysql). Donc je ne sais pas comment pour obtenir le statut lors de l'application symfony persiste et flushs quelque chose?
Lorsque je ajouter quelque chose dans la base de données-je afficher un message d'alerte comme "Ajouter un fait!!!" mais si, ma base de données je vais afficher "Ajouter fait" en dépit de l'échec...
Alors, comment puis-je obtenir le statut de ces fonctions (flush/persistent)? Comment puis-je changer mon alerte basculer le statut?
Cordialement,
- Avez-vous essayer d'envelopper persister&flush en bloc Try/catch et afficher un message d'erreur si quelque chose va mal?
Vous devez vous connecter pour publier un commentaire.
Utiliser un try & bloc catch:
Dans le cas où vous obtenez des erreurs essayez d'utiliser "\Doctrine\ORM\ORMException $e", \Doctrine\DBAL\DBALException $e" ou "\Exception $e" à l'intérieur de catch()
Mon problème est que j'ai été le passage d'un objet complexe dans un champ qui attend une chaîne de caractères, même si j'avais mis cette colonne pour être un ManyToOne. Apparemment @ORM\Column emportait que.
Cependant! Ce n'est pas ce que l'erreur a été qui est intéressant, c'est la façon dont je l'ai corrigé.
J'ai eu un PDOException. J'ai dû plonger dans le code avec xdebug et PHPStorm. xdebug est soutenu par de nombreux Ide PHP. xdebug est difficile à mettre en place la première plusieurs fois que vous le mettez en place. Il y a toujours un pare-feu de tracas ou de tracas à la faire apparaître dans votre phpinfo() ou xdebug.enable_remote ou de xdebug.remote_host.
De s'habituer à elle. JUSTE FAIRE IL! Non, sérieusement. Ne pas écrire une ligne de code en PHP jusqu'à ce que vous avez xdebug de travail; même si vous exécutez en 8 millions de questions. Vous permettra d'économiser des années de votre vie dans le codage.
Je ne sais pas à propos de Symfony, mais ZF3 est désormais livré avec un Vagrantfile. Vous installez l'errance et Oracle VirtualBox, type
vangrant up
dans votre Zf3 répertoire de projet, et vous avez entièrement fonctionnel serveur web local de l'exécution de votre ZF3 application à http://localhost:8080. À partir de là, tout ce que j'avais à faire était de:... Et bien d'abord, avant, j'ai appelé
vagrant up
pour la première fois, j'ai ajouté la ligne suivante à la Vagrantfileconfig.vm.network "private_network", ip: "192.168.33.10"
... alors j'ai appelévagrant up
Dans votre phpinfo(), vous devriez voir xdebug somwhere. Juste
ctrl + f
pour elle. Si il y est, vous êtes principalement en entreprise.Puis j'ai ajouté une règle pour le port 9000 sur mon pare-feu. Puis j'ai commencé un xdebug session. Si cela ne fonctionne pas, Vous pouvez arrêter temporairement le Pare-feu Windows juste pour vérifier si cela fonctionne, mais n'oubliez pas de l'activer immédiatement et assurez-vous que ce n'est pas seulement le pare-feu. Configuration d'une règle de pare-feu pour les entrants sur le port 9000 et permettre ip 192.168.33.10. Si vous ne savez pas comment faire cela ... pourquoi êtes-vous en train d'essayer de développer un logiciel web?
Apprendre à utiliser xdebug!!!