Skip to content

[LiveComponent] Undefined array key "placeholder" after upgrading to 2.22.x #2487

Closed
@maciazek

Description

@maciazek

Hello,

recently after upgrading symfony/ux-live-components to 2.22.x I've encountered this exception:

An exception has been thrown during the rendering of a template ("Warning: Undefined array key "placeholder"").

Here's the reproducer: https://github.com/maciazek/symfony-ux-live-components-choices-reproducer

I have a custom DatalistType form field, which extends TextType to add HTML datalist into it. Inside DatalistType I'm using 'choices' option to add choices to datalist.
https://github.com/maciazek/symfony-ux-live-components-choices-reproducer/blob/master/src/Form/DatalistType.php#L11-L29
https://github.com/maciazek/symfony-ux-live-components-choices-reproducer/blob/master/templates/form/custom_types.html.twig

I have a form inside live component which is using DatalistType as a child field.
https://github.com/maciazek/symfony-ux-live-components-choices-reproducer/blob/ebe9ff77a7181ed6e0ca4dd5fca7483f38e8ed94/src/Form/ExampleType.php#L9-L30
https://github.com/maciazek/symfony-ux-live-components-choices-reproducer/blob/ebe9ff77a7181ed6e0ca4dd5fca7483f38e8ed94/src/Twig/Components/ExampleForm.php#L13-L23

Everything worked well until updating symfony/ux-live-components to 2.22.x - then I've encountered previously mentioned error.

After some investigation I've found that problem is caused by recent change in ComponentWithFormTrait:
https://github.com/symfony/ux-live-component/blob/5adf780aac0ccbd5cb1dddea683db9aa99b91d4a/src/ComponentWithFormTrait.php#L264-L271

I have 'choices' option in my DatalistType, but it's extending TextType which, as I guess, has no default values for placeholder, multiple and expanded options so they're missing in vars array.

Possible solutions:

  1. I can rename option 'choices' to something different, but I still haven't found a better name :)
  2. I can set default values for placeholder, multiple and expanded and assign them to vars inside buildView function in my DatalistType - that's my temporary workaround;
  3. Maybe these recently added vars tests could be null-coalesced or array_key_exists-ed in ComponentWithFormTrait?

Thank you for your great work on the whole UX ecosystem!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions