J’ai un comportement que je n’arrive pas à cerner, et qui me paraît presque être un vrai bug de Symfony que de l’ICC.
J’ai un formulaire avec un champ de type choice, dont je rends chaque option séparément en utilisant form_widget(form.choiceField.0), form_widget(form.choiceField.1), etc.
Entre les options ainsi rendues, j’ai d’autres champs qui viennent. Le code est ci-dessous. L’idée étant de choisir un type de média et de renseigner le ou les champ(s) relatifs à ce type.
Maintenant, il se trouve que si les options de mon choiceField sont forcément requises, il n’en est pas de même pour les champs "intercalaires". Avec l’environnement de dev, pas de problème. Mais avec l’environnement de production, ces champs intercalaires, même s’ils sont bien spécifiés comme non requis dans le FormType, l’attribut required est ajouté. Du coup, on doit renseigner les informations pour tous les types de média alors qu’on n’enregistrera que les données d’un seul.
Il paraît que c’est quelque chose de connu, mais je n’ai pas réussi à en trouver trace sur le repository officiel, et n’ai pas de solution pour l’instant.
Est-ce que quelqu’un aurait déjà observé un tel comportement et aurait un workaround à me proposer ?
Je précise que je parle des environnements Symfony. Ce souci a été constaté sur trois machines différentes en comparant le code HTML généré en passant par app.php et app_dev.php sur la même machine, tous caches purgés.
Merci d’avance
Edit 9 octobre 2015
Il n’est pas impossible que ce soit dû à l’utilisation d’une macro plutôt que le système de templating. La piste me vient de cette discussion, plus précisement la réponse de stof qui précise un souci avec la gestion de required du fait des macros existantes.
Edit 9 octobre 2015 2
Fausse joie : avec le templating, c’est pareil… Voici le HTML généré par la même machine et le même code, en haut en dev' et en bas en prod' :
Temporairement, j’ai rendu mon champ "à l’ancienne". Mais si quelqu’un avait un comportement similaire, qu’il comprenait la raison et qu’il avait la bonne solution au sens Symfony, je serais très intéressé.
Connectez-vous pour pouvoir poster un message.
Connexion
Pas encore membre ?
Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte