<?php
namespace App\Form;
use App\Entity\Contact;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
class ContactCeFormType extends AbstractType
{
const PROPERTIES_SHOWED = ['Telephone'];
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('firstName', null, ['attr' => ['class' => 'form-control', 'placeholder' => 'Prénom *']])
->add('lastName', null, ['attr' => ['class' => 'form-control']])
->add('email', EmailType::class, ['attr' => ['class' => 'form-control']]);
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
if ($event->getData() !== null) {
$cpvs = $event->getData()->getContactPropertyValues();
$form = $event->getForm();
foreach ($cpvs as $cpv) {
if (in_array($cpv->getProperty()->getName(), self::PROPERTIES_SHOWED)) {
$form->add($cpv->getProperty()->getName(), ContactPropertyValueType::class, ['data' => $cpv, 'mapped' => false,'attr' => ['class' => 'form-control']]);
}
}
}
});;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Contact::class,
]);
}
}