This is a collection of simple text fields using the plugin with all default options.
Value :a
Value :b
Value :c
Code used to initialize the collection:
<script type="text/javascript"> $('.my-selector').collection(); </script>
Full Symfony code:
<?php
namespace Fuz\AppBundle\Controller\Basic;
use Fuz\AppBundle\Base\BaseController;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Form\Extension\Core\Type;
use Symfony\Component\HttpFoundation\Request;
/**
* @Route("/basic")
*/
class SimpleCollectionController extends BaseController
{
/**
* A simple collection that even don't use an entity.
*
* @Route("/simple-collection", name="basic")
* @Template()
*/
public function simpleCollectionAction(Request $request)
{
$data = ['values' => ['a', 'b', 'c']];
$form = $this
->createFormBuilder($data)
->add('values', Type\CollectionType::class, [
'entry_type' => Type\TextType::class,
'entry_options' => [
'label' => 'Value',
],
'label' => 'Add, move, remove values and press Submit.',
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'required' => false,
'attr' => [
'class' => 'my-selector',
],
])
->add('submit', Type\SubmitType::class)
->getForm()
;
$form->handleRequest($request);
if ($form->isValid()) {
$data = $form->getData();
}
return [
'form' => $form->createView(),
'data' => $data,
];
}
}
{% extends 'FuzAppBundle::layout.html.twig' %}
{% block extra_js %}
<script src="{{ asset('js/jquery.collection.js') }}"></script>
{% endblock %}
{% block title %}Basic usage{% endblock %}
{% block body %}
<h2>Basic usage</h2>
<p>This is a collection of simple text fields using the plugin with all default options.</p>
{% form_theme form 'jquery.collection.html.twig' %}
{{ form(form) }}
<hr/>
{% for value in data.values %}
<p>Value : {{ value }}</p>
{% endfor %}
<hr/>
<p>Code used to initialize the collection:</p>
<pre>{{ block('script') | e }}</pre>
<p>Full Symfony code:</p>
{{
tabs([
'Controller/Basic/SimpleCollectionController.php',
'Resources/views/Basic/SimpleCollection/simpleCollection.html.twig',
])
}}
{% endblock %}
{% block script %}
<script type="text/javascript">
$('.my-selector').collection();
</script>
{% endblock %}