У меня есть форма 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/…