Impossible de charger le type “texte” dans vendor/symfony/symfony/src/Symfony/Component/Form/FormRegistry.php à la ligne 91
Je suis en utilisant Symfony Standard Edition, et tout le travail dans la version de Symfony2.X jusqu'à ce que je le mettre à jour au 3.0.x-dev.
Même dans la version la plus récente, tout fonctionne sauf une page qui me donne une erreur dans le Contrôleur:
N'a pas pu charger de type "texte" 500 Internal Server Error -
InvalidArgumentException
- dans vendor/symfony/symfony/src/Symfony/Component/Form/FormRegistry.php au
la ligne 91- à FormRegistry ->getType ("texte") dans vendor/symfony/symfony/src/Symfony/Component/Form/FormFactory.php au
la ligne 84- à FormFactory ->createNamedBuilder ('drapeau', 'texte', null, array()) dans vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php
à la ligne 106- à FormBuilder ->create ('drapeau', 'text', array()) dans vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php au
ligne 267- à FormBuilder ->resolveChildren () dans vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php au
ligne 215- à FormBuilder ->getForm () dans src/MyProject/FrontOfficeBundle/Controller/ChallengeController.php au
ligne 418
Dans le Contrôleur, j'ai utilisé ce code:
$form = $this->createFormBuilder()
->add("flag","text")
->add("validate","button")
->getForm();
Même si je supprime le premier add("drapeau","text"), l'erreur de l'interrupteur:
N'a pas pu charger de type "bouton"
Donc je pense que le problème est dans la méthode getForm()
. J'ai gazé que la méthode createFormBuilder()
besoin d'un paramètre j'ai donc essayé de passer un objet du Pavillon qui ont de nombreux arguments (drapeau,valider,...).
Le problème n'a pas changé, c'est comme la syntaxe a changé dans cette version, mais quand j'ai vérifié la la documentation, je n'ai pas trouvé de problèmes dans ma syntaxe.
La forme de version est 3.0-dev. J'ai vérifié dans le projet github et ces fichiers sont latests. J'ai utilisé
composer update
Et j'ai enlevé le cache et les fichiers journaux mais le problème existe.
Merci pour votre aide et désolé pour mon mauvais anglais.
Aussi assurez-vous de lire la MISE à jour 3.0.md document dans votre installation de Symfony pour obtenir une liste des modifications nécessaires à la mise à niveau à la version 3.0
Merci pour votre réponse, oui, je veux dire de ce lien, mais c'est la même chose. Je n'ai pas de mise à niveau de mon projet dans le compositeur, j'ai télécharger la version principale (3.0.x-dev) de symfony et j'ai placé mon projet dans le répertoire src. Puis j'ai installé et tout mettre à jour avec le compositeur, donc je n'ai pas la MISE à jour 3.0.md. Toutes mes pages fonctionne sauf cette page
OriginalL'auteur Empereur Paradis Aymen | 2015-10-16
Vous devez vous connecter pour publier un commentaire.
Ce que @CarlosGranados moyen par
read the UPGRADE-3.0.md
est de lire le fichier qui vous indique comment vous devez modifier votre code à partir de 2.x 3,0 plutôt que comment mettre à jour symfony base de code. Malheureusement, il ne parle pas de comment faire face à ces formes problème.La question que vous vous trouvez face est couverte dans le
[UPGRADE-2.8.md](https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.8.md)
et est dû à la forme des nomstext
/button
déprécié en faveur de leurs pleinement qualifié de la classe nom (FQCN).De MISE à niveau-2.8.md
Type de noms ont été abandonnées et seront supprimées dans Symfony 3.0. Au lieu de référencer les types de par son nom, vous devriez référence par leurs pleinement qualifié de la classe nom (FQCN) à la place. Avec PHP 5.5 ou version ultérieure, vous pouvez utiliser la "classe" de la constante pour que:
Avant:
Après:
... et il va vous dire un groupe de plus ...
Merci pour le Partage, ça marche pour moi , j'ai juste modifié quelques lignes comme TextType avec TextareaType et quelques autres , mais reconnaissant pour votre aide @qooplmao
OriginalL'auteur qooplmao
Notre serveur est toujours à php 5.3 - donc, je vais devoir trouver des solutions de contournement pour symfony3 que je ne peux utiliser TextType::classe sur notre serveur live.
Vous pouvez réduire votre code sur de grandes formes par la définition d'une constante de la classe de référence:
Cela fonctionne pour moi!
OriginalL'auteur Jason Butler