Dynamic input
The dynamic input is a simple yet powerful formfield allowing you to provide selects, number or text inputs, checkboxes, radios and switches based on your conditions/code.
To retreive the possible options, Voyager will fetch a route you define in the formfield options. This route has to return a JSON object containing the set of fields you want to show.
For easy use Voyager provides a class VoyagerAdmin\Voyager\Classes\DynamicInput
that helps you create those responses.
Available methods
addSelect
Adds a select input to the formfield.
Parameter
Type
Description
Default
key
string, null
The key in the final data
null
title
string, array, null
The title shown above the input
null
options
array
An array of key => value pairs. The key is used as the value in the final data
[]
multiple
bool
Allow multiple selection
false
value
mixed
The value selected by the user or the default value
null
addText
Add a text input to the formfield.
Parameter
Type
Description
Default
key
string, null
The key in the final data
null
title
string, array, null
The title shown above the input
null
placeholder
string, array, null
An array of key => value pairs. The key is used as the value in the final data
null
value
mixed
The value selected by the user or the default value
null
addNumber
Add a number input to the formfield.
Parameter
Type
Description
Default
key
string, null
The key in the final data
null
title
string, array, null
The title shown above the input
null
placeholder
string, array, null
An array of key => value pairs. The key is used as the value in the final data
null
value
int, null
The value selected by the user or the default value
null
min
int, null
The minimum value that can be entered. Null means negative infinite
null
max
int, null
The maximum value that can be entered. Null means infinite
null
addCheckboxes
Adds multiple checkboxes to the formfield.
Parameter
Type
Description
Default
key
string, null
The key in the final data
null
title
string, array, null
The title shown above the input
null
options
array
An array of key => value pairs. The key is used as the value in the final data
[]
value
mixed
The values selected by the user or the default value
null
addRadios
Adds multiple radios to the formfield.
Parameter
Type
Description
Default
key
string, null
The key in the final data
null
title
string, array, null
The title shown above the input
null
options
array
An array of key => value pairs. The key is used as the value in the final data
[]
value
mixed
The value selected by the user or the default value
null
addSwitch
Add a simple switch to the formfield.
Parameter
Type
Description
Default
key
string, null
The key in the final data
null
title
string, array, null
The title shown above the input
null
value
mixed
The value when the switch is active
null
Knowing the BREAD action
The incoming request contains a parameter bread_action
which can be query
, browse
, edit
or add
.
Using no keys on inputs
Sometimes its useful to use no key on an input.
That way a single select with multiple=false will only store the selected value in the database instead of a key-value pair.
But be aware that only one input total without a key can exist in a formfield.
Otherwise an Exception Only one input without a key can exist!
will be thrown.
Examples
Single select without a key
This example shows a single select with two options English
and German
.
The data stored in the database will be en
or de
.
Single select with a key
This example shows a single select with two options English
and German
.
The data stored in the database will be ['language' => 'en']
or ['language' => 'de']
.
Selects based on previous selection
In this example the user is asked to select a country first. Once the country is selected, another select is shown which allows the user to enter the state.
When selecting country United States
and state New York
, the data stored in the database will look like this:
Last updated
Was this helpful?