View file File name : TagsSelectType.php Content :<?php /* * This file is part of the Kimai time-tracking app. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace App\Form\Type; use App\Entity\Tag; use App\Repository\Query\TagFormTypeQuery; use App\Repository\TagRepository; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; use Symfony\Component\OptionsResolver\Options; use Symfony\Component\OptionsResolver\OptionsResolver; /** * Custom form field type to select a tag. */ class TagsSelectType extends AbstractType { /** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'multiple' => true, 'class' => Tag::class, 'label' => 'label.tag', 'choice_label' => function (Tag $tag) { return $tag->getName(); }, ]); $resolver->setDefault('query_builder', function (Options $options) { return function (TagRepository $repo) use ($options) { $query = new TagFormTypeQuery(); $query->setUser($options['user']); return $repo->getQueryBuilderForFormType($query); }; }); } /** * {@inheritdoc} */ public function getParent() { return EntityType::class; } }