src/Form/UserSettingsType.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\CalendarEvent;
  4. use App\Entity\Payment;
  5. use App\Enum\CalendarEvent\Type;
  6. use Symfony\Component\Form\FormBuilderInterface;
  7. use Symfony\Component\OptionsResolver\OptionsResolver;
  8. use Symfony\Component\Form\Extension\Core\Type\TimeType;
  9. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  10. use App\Form\AbstractBaseType;
  11. use App\Entity\User;
  12. use App\Entity\UserSettings;
  13. use App\Enum\User\Permission;
  14. use App\Enum\User\Role;
  15. use Symfony\Component\Form\Extension\Core\Type\TextType;
  16. class UserSettingsType extends AbstractBaseType
  17. {
  18.     public function buildForm(FormBuilderInterface $builder, array $options): void
  19.     {
  20.         $this->setBuilder($builder);
  21.         $routeName $this->routeService->getRouteName();
  22.         /** @var UserSettings $item */
  23.         $item $options['data'];
  24.         if ($routeName == "user_settings_edit_ajax") {
  25.             $this->addDateField('startCalendarEventsDate');
  26.             $this->addDateField('endCalendarEventsDate');
  27.             $this->addTextField("calendarEventsDateRangeName"$builder);
  28.         } else {
  29.             // Добавляем все поля.
  30.             foreach ($item->getAllPermissionsGrouped() as $group => $groupData) {
  31.                 foreach ($groupData['permissions'] as $permission => $value) {
  32.                     $this->addCheckboxField($permission$builder);
  33.                 }
  34.             }
  35.         }
  36. //        $options['submitted_fields_only'] = true;
  37.         $this->afterBuildForm($builder$options);
  38.     }
  39.     public function configureOptions(OptionsResolver $resolver)
  40.     {
  41.         parent::configureOptions($resolver);
  42.         $resolver->setDefaults([
  43.             'data_class' => UserSettings::class,
  44.         ]);
  45.     }
  46. }