Skip to content

Allow returning of empty array from multicheckboxes (using use_hidden_element) #149

@tempfirstuser

Description

@tempfirstuser

Bug Report

Q A
Version(s) 2.15.1

Summary

I have multicheckoxes. I want to have ability to return empty array if non of checkboxes is checked. I use use_hidden_element to return hidden input element instead but it returns empty string instead of empty array.

This is my fieldset config:

"productCategories" => [
    'type' => MultiCheckbox::class,
    'name' => 'categories',
    'options' => [
        'use_hidden_element' => true,
    ],
],

this is my input filter config:

"productCategories" => [
	'name' => 'categories',
	'type' => ArrayInput::class,
	//'required' => true,
	'required'          => false,
	'allow_empty'       => true,
	'continue_if_empty' => true,
	'filters' => [
    		['name' => ToInt::class],
	],
],

this is generated hidden input:

<input type="hidden" name="product[categories]" value="">

this is generated checkbox input:

<input type="checkbox" name="product[categories][]" value="12">
<input type="checkbox" name="product[categories][]" value="34">
<input type="checkbox" name="product[categories][]" value="56">

and as result I've got this exception:

Additional information:
Laminas\InputFilter\Exception\InvalidArgumentException

File:

    /vendor/laminas/laminas-inputfilter/src/ArrayInput.php:26

Message:

    Value must be an array, string given.

Stack trace:

    #0 /vendor/laminas/laminas-inputfilter/src/BaseInputFilter.php(544): Laminas\InputFilter\ArrayInput->setValue()
    #1 /vendor/laminas/laminas-inputfilter/src/BaseInputFilter.php(206): Laminas\InputFilter\BaseInputFilter->populate()
    #2 /vendor/laminas/laminas-inputfilter/src/BaseInputFilter.php(540): Laminas\InputFilter\BaseInputFilter->setData()
    #3 /vendor/laminas/laminas-inputfilter/src/BaseInputFilter.php(206): Laminas\InputFilter\BaseInputFilter->populate()
    #4 /vendor/laminas/laminas-form/src/Form.php(522): Laminas\InputFilter\BaseInputFilter->setData()

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