<?php
namespace App\Form\Forms\Security\Profile;
use App\Form\Type\Select2EntityType;
use Doctrine\ORM\EntityRepository;
use Platform\SecurityBundle\Entity\Access\Role;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotNull;
class RoleType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('role', Select2EntityType::class, [
'required' => true,
'label_tooltip' => true,
'placeholder' => 'Select a role...',
'class' => $options['class'],
'empty_data' => null,
'choice_label' => 'name',
'constraints' => [
new NotNull(),
],
'query_builder' => function (EntityRepository $repo) {
return $repo
->createQueryBuilder('role')
->addOrderBy('role.name', 'ASC');
},
]);
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'class' => Role::class
]);
}
}