Bonjour,
J'ai une entrée de mon formulaire de type Textarea qui n'affiche pas les saut à la ligne.
RegisterType.php
->add('description', TextareaType::class, [
'label' => 'Un petit mot sur vous:',
])
J'ai essayé de rajouté 'trim' => true
mais rien n'a changé
showOne.html.twig
<p>{{ user.description }}</p>
Hors Symfony j'avais déjà gérer cela grâce à une fonction PHP:
trim(preg_replace('/\s\s+/', '<br>', $descr))
Mais ici elle ne fonctionne pas. Elle m'affiche simplement <br>
et ne l'execute pas (sans doute lié à Symfony pour empêcher les failles XSS)
Je souhaiterais que l'affichage gère bien le saut à la ligne.
Je ne sais pas si c'est dans mon formType, dans mon controller ou dans ma view que je dois gérer ça
SI vous avez une idée je suis prenneur ;)
Joyeuse Pâques !
Hello !
En effet cela fonctionne cumulé à trim()
On remplace les saut à la ligne par un <br>
$newDescr = trim(preg_replace('/\s\s+/', '<br>', $descr));
Raw permettra l'interprétation du <br> en tant que html.
{{ user.description | raw }}
mais laisse apparaître un <br>
dans le textarea en question lors de l'édition, ce qui n'est pas très jolie.
Mais cela m'a lancé dans la bonne direction car j'ai trouvé l'idéal !!
{{ user.description | nl2br }}
Twig mettra un <br> lui-même dès qu'il y a un saut de ligne !
https://twig.symfony.com/doc/2.x/filters/nl2br.html
Merci pour ta réponse :D
Bonjour, dans ton fichier twig , essaye de modifier <p>{{ user.description }}</p> par <p>{{ user.description | raw }}</p>
Bonjour,
Je suis sous symfony 5.2 quand j'utilise TextAreaType si je veux garder les sauts de ligne je met à True et en suite lors de l'affichage avec twig j'utilise nl2br : <p>{{ user.description | nl2br }}</p>