2017-03-23 4 views
1

Je souhaite masquer le champ form.title et définir la valeur du champ form.title sur form.oro_eventname.
L'utilisateur peut uniquement voir form.oro_eventname, mais la valeur form.oro_eventname est copiée à form.title.Copier la valeur du champ dans un autre champ

Quelqu'un peut-il me montrer comment le faire?

{% set dataBlocks = [{ 
    'title': 'General Information'|trans, 
    'class': 'active', 
    'subblocks': [ 
     { 
      'title': '', 
       'data': [ 
       form_row(form.title), 
       form_row(form.oro_eventname), 
       form_row(form.description), 
       form_row(form.backgroundColor), 
       form.calendarUid is defined ? form_row(form.calendarUid) : null, 
       form_row(form.attendees), 
       entity.recurrence is null ? form_row(form.reminders) : null, 
       form_row(form.notifyAttendees), 
       invitations.notify_attendees_component() 
      ] 
     }, 
     { 
      'title': '', 
      'data': [ 
       '<div ' ~ UI.renderPageComponentAttributes(calendarEventDateRange) ~ '>' ~ 
       form_row(form.start) ~ 
       form_row(form.end) ~ 
       form_row(form.allDay) ~ 
       '</div>', 
       form.recurrence is defined ? form_row(form.recurrence) : null 
      ] 
     } 
    ] 
}] %} 
+0

Ce n'est pas vraiment clair à partir de votre question ce que vous voulez faire. Pouvez-vous fournir plus de détails ou peut-être une image de ce dont vous avez besoin? –

Répondre

1

vous pouvez réaliser que ce soit avec javascript (fonction qui se déclenchent keyup événement par exemple)

$('#id_title').val() = $('#id_oro_eventname').val(); 

ou dans votre contrôleur

$title = $form->get('oro_eventname')->getData(); 
$yourEntity -> setTitle($title); 
+1

Je recommande la deuxième façon d'éviter de dépendre du code frontal. Certaines personnes utilisent Javascript désactivé pour éviter la publicité sur certains appareils. –

+0

@MartinFasani Je suis d'accord – mickdev

0

Set champ titre comme annulable vrai entité donc, il ne sera pas par l'erreur de validation pour la valeur nulle si vous n'ajoutez pas de champ de titre dans le formulaire.

/** 
* @var string 
* 
* @ORM\Column(name="title", type="string", length=30, nullable=true) 
*/ 
private $title; 

Dans votre action ajouter/modifier, définissez la valeur du titre si la forme est valide comme ceci.

if ($form->isValid()) { 
    $event = $form->getData(); 
    $event->setTitle($event->getOroEventname()); 

    // Other code like persist flush redirect... 
}