<?php
namespace App\Form\Admin;
use App\Entity\BookingConstraintSaison;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use App\Form\BookingConstraintSaisonTranslationType;
use App\Form\Admin\BookingConstraintSaisonPeriodType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Contracts\Translation\TranslatorInterface;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\MoneyType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use A2lix\TranslationFormBundle\Form\Type\TranslationsFormsType;
class BookingConstraintSaisonType extends AbstractType
{
private TranslatorInterface $translator;
public function __construct(TranslatorInterface $translator)
{
$this->translator = $translator;
}
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('translations', TranslationsFormsType::class, [
'label' => "Champ à traduire",
'form_type' => BookingConstraintSaisonTranslationType::class
])
->add('icon', TextType::class, [
'label' => 'Icon (<a href="https://fontawesome.com/v5/search?q=" target="_blank">Font Awesome</a>)'
])
->add('price', MoneyType::class, [
'label' => 'Prix/nuit'
])
->add('periods', CollectionType::class, [
'label' => 'Période(s)',
'entry_type' => BookingConstraintSaisonPeriodType::class,
'entry_options' => [
'label' => false
],
'allow_add' => true,
'allow_delete' => true,
'by_reference' =>false,
'prototype' => true,
'prototype_name'=> '__saisonPeriod__'
])
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => BookingConstraintSaison::class,
]);
}
}