like in How to handle Symfony form collection with 500+ items i have got a big symfony form collection. In the mentioned thread someone suggests to use pagination for the collection.
How can i paginate such a form collection with the knpPaginatorBundle?
The form type is like this
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('myType', 'collection', array(
'type' => new MyType(),
))
;
}
My controller generates a form with the collection
$form = $this->createForm(new MyFormCollectionType());
and then i'm trying to use the paginator
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$form['myType'],
$request->get('page', 1),
10
);
I think i'm using the wrong target for paginate($target), whats the correct target in a symfony form collection?
Solution: Query all entities of the collection, paginate these and set the data attribute of the collection to the paginated value.
Controller:
Form type:
Example on Symfony3 :
Catalog Controller
Catalog Form (CatalogProductType)
My view (products.html.twig)