<?php
namespace App\Form;
use App\Entity\Profile;
use App\Entity\AnimalSpecie;
use Symfony\Component\Form\AbstractType;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\EntityFilterType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TimezoneType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Regex;
use Symfony\Contracts\Translation\TranslatorInterface;
class ProfileType extends AbstractType
{
/* @var TranslatorInterface $translator */
private $translator;
public function __construct(TranslatorInterface $translator)
{
$this->translator = $translator;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$_ = $this->translator;
$builder
->add('name', null,
[
'attr' => [
'placeholder' => 'Name',
],
'required' => true,
'empty_data' => '',
// 'validation_groups' => ['valid-value'],
])
->add('cuit', TextType::class, [
'attr' => [
'data-cleave' => json_encode(['blocks' => [2, 8, 1], 'delimiter' => '-']),
'class' => 'form-control',
'placeholder' => '01-12345678-9',
'autocomplete' => 'off',
'maxlength' => 13,
'minlength' => 13,
],
'label' => 'Cuit',
'required' => true,
'constraints' => [
new Regex('/\d{2}\-\d{8}\-\d/'),
],
// 'validation_groups' => ['valid-value'],
])
->add('entityName')
->add('otherCity')
->add('otherName')
->add('otherEmail')
->add('otherState')
->add('timeZone', TimezoneType::class, [
'attr' => [ 'class' => 'selectize'],
'label' => 'User.timeZone',
'empty_data' => 'America/Argentina/Buenos_Aires',
])
->add('surname', null,
[
'attr' => [
'placeholder' => $_->trans('select.surname'),
],
'required' => true,
'empty_data' => '',
'label' => 'User.surname',
// 'validation_groups' => ['valid-value'],
])
->add('middleName', null,
[
'attr' => [
'placeholder' => $_->trans('select.middleName'),
],
'empty_data' => '',
'label' => 'User.middleName',
])
->add('language', ChoiceType::class, [
'attr' => ['class' => 'selectize'],
'label' => 'User.locale',
'choices' => [
'Español' => 'es',
'Inglés' => 'en',
'Portugués' => 'pt',
],
'empty_data' => 'es',
])
->add('defaultAnimalSpecie', EntityFilterType::class, [/*{{{*/
'required' => true,
'label' => 'Form.defaultAnimalSpecie',
'attr' => ['class' => 'filters selectize','placeholder' =>'select.animalSpecie'],
'class' => AnimalSpecie::class,
'query_builder' => function ( $repository ) { return $repository->entryHelp(); }
])/*}}}*/
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Profile::class,
// 'validation_groups' => ['valid-value'],
]);
}
}