Bonjour, c'est encore moi.
Je cherche à remplir un champ de formulaire avec le username d'un de mes objets.
Le problème est que je peux modifier ce champ pré-rempli.
Comment rendre sa modif impossible ?
Voici ce que j'ai dans le controller pour l'appel du FormType
$contact = new Contact();
if ($this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')) {
$user = $this->getUser();
$contact->setContactname($user->getUsername());
}
$form = $this->createForm(ContactType::class, $contact);
Par avance merci pour votre aide.
Nans
Bonsoir, si ton champ n'est jamais modifiable alors suffit de ne pas le proposer. Mais ton code me laisser penser qu'une personne non authentifié peut modifier ce champ. Dans ce cas :
Encore une fois merci skp !
Je ne sais pas ce qu'est read_only mais ta proposition m'a fait faire ça dans ma vue (en enlevant le champ correspondant du ContactType :
{% block body %}
<h1>Contacter le développeur</h1>
<br>(* Champs obligatoires)
<form action="{{ path("Contact") }}" method="POST">
{% if not is_granted('IS_AUTHENTICATED_FULLY') %}
Entrer votre nom : <input type="text" name="contactname">
{% endif %}
{% if is_granted('IS_AUTHENTICATED_FULLY') %}
Votre nom : {{ app.user.username }}
{% endif %}
{{ form_start(form) }}
{{ form_widget(form) }}
{{ form_end(form) }}
</form>
C'est certainement "dégueulasse" et à optimiser mais je vais m'en contenter, je suis un peu dans l'urgence.
{% endblock %}