Как сохранить данные формы при просмотре вывода с разбивкой на страницы?

У меня есть форма Symfony, которая содержит длинный список элементов с флажками. Я успешно запустил knp paginator, и теперь форма разбита на страницы. Однако, когда я перемещаюсь между страницами, я теряю отмеченный/не отмеченный статус флажков. Я уверен, что это, вероятно, довольно легко, но я не могу решить это. Я еще не очень разбираюсь в php.

Вот мой контроллер:

    /**
     * @Route("/addquestions/{quizid}", name = "addquestions")
     */
    public function add(Request $request, PaginatorInterface $paginator, $quizid)
    {
        $repository = $this->getDoctrine()->getRepository(Quiz::class);
        $quiz = $repository->find($quizid);

        $repository = $this->getDoctrine()->getRepository(Question::class);
        $questions = $repository->findAll();

        // Paginate the results of the query
        $pagination = $paginator->paginate($questions, $request->query->getInt('page', 1), 3);

        $form = $this->createForm(AddQuizQuestionType::class, $quiz, ["pagination" => $pagination]);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $questions = $form->get('question')->getData();
            foreach ($questions as $question){
                $quizquestion = new QuizQuestion();
                $quizquestion->setQuestion($question);
                $quiz->addQuizQuestion($quizquestion);
            }
            $entityManager = $this->getDoctrine()->getManager();
            $entityManager->persist($quiz);
            $entityManager->flush();
            return $this->redirectToRoute('homepage');
        }

        return $this->render('editquiz/addquestions.html.twig', [
            'form' => $form->createView(),
            'pagination' => $pagination,
        ]);
    }

И моя форма — она использует запрос с разбивкой на страницы для отображения элементов с флажком.

class AddQuizQuestionType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('question', EntityType::class, [
                'expanded' => true,
                'multiple' => true,
                'class' => Question::class,
                'mapped' => false,
                'choices' => $options['pagination'],
            ])
            ->add('submit', SubmitType::class, [
                'label' => 'Submit',
            ])
            ->setMethod('GET')
        ;
    }

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

а мой шаблон - он рендерит чекбоксы с картинками из базы.

{% extends 'base.html.twig' %}
{% block title %}CreatequizController{% endblock %}
{% block body %}
<h1>Create Quiz</h1>
{{ form_start(form) }}
{% for question in form.question %}
<h5>Question {{ question.vars.value }}</h5>
<div class = "border mb-5">
  <img src = "{{ asset(question.vars.label) }}" alt = ""/>
  <div class = "pl-3">
    {{ form_widget(question) }}
  </div>
</div>
{% endfor %}
<div class = "navigation">{{ knp_pagination_render(pagination) }}</div>
{{ form_end(form) }}
{% endblock %}

Я хотел бы, чтобы при переходе между страницами выбранные мной флажки оставались отмеченными.

Заранее спасибо,

Мартин

Это то, что вы ищите? stackoverflow.com/questions/28719184/…

kironet 01.04.2019 21:32

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

MartynW 01.04.2019 22:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
281
0

Другие вопросы по теме