From 01b660b6f9b1f0895be83b035be76a2dc15e3ce4 Mon Sep 17 00:00:00 2001 From: WouterJ Date: Sun, 1 Mar 2015 23:40:15 +0100 Subject: [PATCH] Rename CollectionType entry options --- cookbook/form/form_collections.rst | 4 +- reference/forms/types/collection.rst | 55 ++++++++++++++++------------ 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/cookbook/form/form_collections.rst b/cookbook/form/form_collections.rst index 50786a0773a..083976e33aa 100644 --- a/cookbook/form/form_collections.rst +++ b/cookbook/form/form_collections.rst @@ -126,7 +126,7 @@ Notice that you embed a collection of ``TagType`` forms using the { $builder->add('description'); - $builder->add('tags', 'collection', array('type' => new TagType())); + $builder->add('tags', 'collection', array('entry_type' => new TagType())); } public function configureOptions(OptionsResolver $resolver) @@ -285,7 +285,7 @@ add the ``allow_add`` option to your collection field:: $builder->add('description'); $builder->add('tags', 'collection', array( - 'type' => new TagType(), + 'entry_type' => new TagType(), 'allow_add' => true, )); } diff --git a/reference/forms/types/collection.rst b/reference/forms/types/collection.rst index 367abb2eda1..0714d9dc376 100644 --- a/reference/forms/types/collection.rst +++ b/reference/forms/types/collection.rst @@ -16,10 +16,10 @@ forms, which is useful when creating forms that expose one-to-many relationships | Options | - `allow_add`_ | | | - `allow_delete`_ | | | - `delete_empty`_ | -| | - `options`_ | +| | - `entry_options`_ | +| | - `entry_type`_ | | | - `prototype`_ | | | - `prototype_name`_ | -| | - `type`_ | +-------------+-----------------------------------------------------------------------------+ | Inherited | - `by_reference`_ | | options | - `cascade_validation`_ | @@ -52,10 +52,10 @@ to an array of email addresses. In the form, you want to expose each email address as its own input text box:: $builder->add('emails', 'collection', array( - // each item in the array will be an "email" field - 'type' => 'email', + // each entry in the array will be an "email" field + 'entry_type' => 'email', // these options are passed to each "email" type - 'options' => array( + 'entry_options' => array( 'required' => false, 'attr' => array('class' => 'email-box') ), @@ -266,19 +266,24 @@ form you have to set this option to true. However, existing collection entries will only be deleted if you have the allow_delete_ option enabled. Otherwise the empty values will be kept. -options -~~~~~~~ +entry_options +~~~~~~~~~~~~~ + +.. versionadded:: 2.7 + The ``entry_options`` option was introduced in Symfony 2.7 in favor of + ``options``, which is available prior to 2.7. **type**: ``array`` **default**: ``array()`` -This is the array that's passed to the form type specified in the `type`_ +This is the array that's passed to the form type specified in the `entry_type`_ option. For example, if you used the :doc:`choice ` -type as your `type`_ option (e.g. for a collection of drop-down menus), then -you'd need to at least pass the ``choices`` option to the underlying type:: +type as your `entry_type`_ option (e.g. for a collection of drop-down menus), +then you'd need to at least pass the ``choices`` option to the underlying +type:: $builder->add('favorite_cities', 'collection', array( - 'type' => 'choice', - 'options' => array( + 'entry_type' => 'choice', + 'entry_options' => array( 'choices' => array( 'nashville' => 'Nashville', 'paris' => 'Paris', @@ -288,6 +293,21 @@ you'd need to at least pass the ``choices`` option to the underlying type:: ), )); +entry_type +~~~~~~~~~~ + +.. versionadded:: 2.7 + The ``entry_type`` option was introduced in Symfony 2.7 in favor of + ``type``, which is available prior to 2.7. + +**type**: ``string`` or :class:`Symfony\\Component\\Form\\FormTypeInterface` **required** + +This is the field type for each entry in this collection (e.g. ``text``, ``choice``, +etc). For example, if you have an array of email addresses, you'd use the +:doc:`email ` type. If you want to embed +a collection of some other form, create a new instance of your form type +and pass it as this option. + prototype ~~~~~~~~~ @@ -336,17 +356,6 @@ If you have several collections in your form, or worse, nested collections you may want to change the placeholder so that unrelated placeholders are not replaced with the same value. -type -~~~~ - -**type**: ``string`` or :class:`Symfony\\Component\\Form\\FormTypeInterface` **required** - -This is the field type for each item in this collection (e.g. ``text``, ``choice``, -etc). For example, if you have an array of email addresses, you'd use the -:doc:`email ` type. If you want to embed -a collection of some other form, create a new instance of your form type -and pass it as this option. - Inherited Options -----------------