<?php
namespace App\Form;
use App\Entity\CalendarEvent;
use App\Entity\Payment;
use App\Enum\CalendarEvent\Type;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TimeType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use App\Form\AbstractBaseType;
use App\Entity\User;
use App\Entity\UserSettings;
use App\Enum\User\Permission;
use App\Enum\User\Role;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class UserSettingsType extends AbstractBaseType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$this->setBuilder($builder);
$routeName = $this->routeService->getRouteName();
/** @var UserSettings $item */
$item = $options['data'];
if ($routeName == "user_settings_edit_ajax") {
$this->addDateField('startCalendarEventsDate');
$this->addDateField('endCalendarEventsDate');
$this->addTextField("calendarEventsDateRangeName", $builder);
} else {
// Добавляем все поля.
foreach ($item->getAllPermissionsGrouped() as $group => $groupData) {
foreach ($groupData['permissions'] as $permission => $value) {
$this->addCheckboxField($permission, $builder);
}
}
}
// $options['submitted_fields_only'] = true;
$this->afterBuildForm($builder, $options);
}
public function configureOptions(OptionsResolver $resolver)
{
parent::configureOptions($resolver);
$resolver->setDefaults([
'data_class' => UserSettings::class,
]);
}
}