ПОЛУЧИТЬ форму максимального значения начиная с DB symfony 4 - PullRequest
0 голосов
/ 21 февраля 2020

Извините, что беспокою вас, но я хотел бы получить максимальное значение для проверки формы, например, это может быть поле числового значения c, но проверка диапазона типов MaxValue должна быть получена в базе данных, для которой я объясняю себя Например, я sh чтобы зарезервировать транспорт, максимальное значение по умолчанию равно 4 для 4 оставшихся мест, но если для этого транспортного средства осталось 3 места, проверка должна была бы перейти к 3

Я пытался go через entitytype с событиями, но это ничего не изменило в моей проблеме, оно вернуло в выпадающем списке все количество мест для каждого транспортного средства.

Цель состоит в том, чтобы сделать простую форму кнопки бронирования с просто способ выбрать количество мест, не имея возможности превысить значение базы данных.

Например, URL-адрес / transport / 6 / book

Мы должны найти способ передайте значение id номер 6, и валидация будет, например, между 1 и 3, или создайте список, который помещает 1 2 3

Если трансп ort с 7 до 1 места доступности, это должно быть только 1.

Извините, если я ошибся, но я работаю над этим больше недели, и я не могу заставить его работать, поэтому я перешел на старый коммит, чтобы приложение работало. Я новичок в этой области, поэтому я не знаю расширенных возможностей формы, но я очень хорош в хранилище веток и т. Д. c. Именно эта часть блокирует, заранее спасибо за вашу помощь.

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('nbPlaces', EntityType::class, [
                'class' => Transport::class,
                'label' => 'Nombre de places',
                'attr' => [
                    'placeholder' => "Nombre de places",
                ],
                'query_builder' => function (TransportRepository $transportRepository) use ($id_service) {
                    return $transportRepository->findOneByIdPlace($id_service);
                },
                'choice_label' => 'nbPlaces'
            ]);
    }

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults([
        'data_class' => Reservation::class,
        'id_service' => null
    ]);
}

и контроллер

$booking = new Reservation();
        $form = $this->createForm(ReservationType::class, $booking, ['id_service' => $service]);

, а $ id_service - неопределенная используемая переменная

1 Ответ

0 голосов
/ 21 февраля 2020

Это потому, что $id_service никогда не определяется. Вы должны получить это из вариантов. Взгляните сюда: https://symfony.com/doc/current/forms.html#other -common-form-features

Так что ваш код должен выглядеть примерно так:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $id_service = $options['id_service'];
    $builder
        ->add('nbPlaces', EntityType::class, [
            'class' => Transport::class,
            'label' => 'Nombre de places',
            'attr' => [
                'placeholder' => "Nombre de places",
            ],
            'query_builder' => function (TransportRepository $transportRepository) use ($id_service) {
                return $transportRepository->findOneByIdPlace($id_service);
            },
            'choice_label' => 'nbPlaces'
        ]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...