вот мой класс типа формы:
use App\Entity\User;
use App\Entity\UserSubscriptionTier;
use App\Security\UserProvider;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use App\Repository\UserRepository;
class FeedFilterType extends AbstractType
{
/**
* @var UserProvider
*/
protected $userProvider;
/**
* @var UserRepository $userRepository
*/
protected $userRepository;
public function __construct(UserProvider $userProvider, UserRepository $userRepository)
{
$this->userProvider = $userProvider;
$this->userRepository = $userRepository;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('creators', ChoiceType::class, [
'choices' => $this->userRepository->getCreatorsSubscribedToByUser($this->userProvider->getCurrentUser()),
'choice_label' => 'name',
'required' => false,
'multiple' => true,
'expanded' => false,
'attr'=> array('class'=>'custom-select'),
'choice_value' => function (User $entity = null) {
return $entity ? $entity->getId() : '';
},
'placeholder' => 'Subscriptions' /* This didn't work */
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array());
}
}
Что я хочу сделать, так это вручную вставить отключенную опцию в качестве первой опции в моем списке выбора, чтобы она отображалась в виде заголовка, например:
Как я могу сказать формам Symfony, что перед всеми опциями сущностей я хочу вставить отключенную опцию в качестве заголовка?
Установка 'placeholder' => 'Subscriptions'
не сработала.
Я также пытался использовать такие подмассивы, как:
'choices' => array(
'Subscriptions' => $this->userRepository->getCreatorsSubscribedToByUser($this->userProvider->getCurrentUser()),
),
Но «Подписки» вышли курсивом и полужирным шрифтом, и это не будет хорошо для моего фронтэнда, поскольку это не соответствует остальной части CSS.