New in Symfony 6.1: Customizable Collection Prototypes

Contributed by Michael Käfer in #45605.

The Symfony Form component is so stable and provides so many features, that we rarely add new features to it. However, in Symfony 6.1 we're improving its developer experience with a new feature to customize collection prototypes. The CollectionType form field is used to render a collection of other fields or forms. When the field allows to add new elements to the collection, it defines a prototype option. This contains the HTML code needed to render the new empty collection item (you've probably seen it as the data-prototype HTML attribute of the element that wraps the entire collection). The only drawback is that collection prototypes are not entirely configurable. You can set their initial values with the prototype-data option, but that's pretty much it. That's why in Symfony 6.1 we're adding a new option called prototype_options so you can configure collection prototypes. The options defined in prototype_options are passed to the form type specified in the entry_type option when creating its prototype. In practice, this allows to have different options depending on whether you are adding a new entry or editing an existing entry:

    $builder->add('names', CollectionType::class, [
'entry_type'   => TextType::class,

// this is used when editing items in the collection
'entry_options'  => [
    'attr' => ['class' => 'item-edit'],
    'help'  => 'You cannot edit existing names.',
    'disabled' => true,
],

// this is used when adding new items to the collection
'prototype_options'  => [
    'attr' => ['class' => 'item-add'],
    'help'  => 'Check out the rules to create new names',
    'help_html' => true,
],

]);

                Sponsor the Symfony project.

https://symfony.com/blog/new-in-symfony-6-1-customizable-collection-prototypes?utm_source=Symfony%20Blog%20Feed&utm_medium=feed

Utworzony 3y | 9 maj 2022, 08:20:08


Zaloguj się, aby dodać komentarz

Inne posty w tej grupie

SymfonyLive Berlin 2025: Recap and Replay !

SymfonyLive Berlin 2025 took place just 3 weeks ago!

A huge thank you to everyone who joined us!🔥 The conference brought together the local Symfony community in the heart of Berlin for two da

24 kwi 2025, 14:30:18 | Symfony
New in Symfony 7.3: Global Translation Parameters

Contributed by Hubert Lenoir in

24 kwi 2025, 07:30:24 | Symfony
SymfonyOnline June 2025: FormFlow: Build Stunning Multistep Forms

SymfonyOnline June 2025 is almost here, starting in almost 2 months on:

June 10-11: Workshop days. It is possible to attend 1 two-day training or 2 one-day trainings. June 12-13: Online confe

23 kwi 2025, 15:20:21 | Symfony
New in Symfony 7.3: Assets Pre-Compression

Contributed by Kévin Dunglas in

23 kwi 2025, 08:20:31 | Symfony
SymfonyOnline June 2025: Inside a Financial App Breach: Debugging a Million-Dollar Bug

SymfonyOnline June 2025 is almost here, starting in almost 2 months on:

June 10-11: Workshop days. It is possible to attend 1 two-day training or 2 one-day trainings. June 12-13: Online confe

22 kwi 2025, 13:50:03 | Symfony
New in Symfony 7.3: Invokable Commands and Input Attributes

This is the first article in a series showcasing the most important new features introduced by Symfony 7.3, which will be released at the end of May 2025.

22 kwi 2025, 09:10:36 | Symfony
A Week of Symfony #955 (April 14–20, 2025)

This week, the upcoming Symfony 7.3 version improved the AsAlias attribute by adding a new argument, introduced Clock support for UriSigner, and refined the return type of the ContainerInterface::get(

20 kwi 2025, 08:30:06 | Symfony