Documentation

ChoiceField
in package
implements FieldInterface Uses FieldTrait

FinalYes
Tags
author

Javier Eguiluz javier.eguiluz@gmail.com

Table of Contents

Interfaces

FieldInterface

Constants

OPTION_ALLOW_MULTIPLE_CHOICES  = 'allowMultipleChoices'
OPTION_AUTOCOMPLETE  = 'autocomplete'
OPTION_CHOICES  = 'choices'
OPTION_ESCAPE_HTML_CONTENTS  = 'escapeHtml'
OPTION_RENDER_AS_BADGES  = 'renderAsBadges'
OPTION_RENDER_EXPANDED  = 'renderExpanded'
OPTION_USE_TRANSLATABLE_CHOICES  = 'useTranslatableChoices'
OPTION_WIDGET  = 'widget'
VALID_BADGE_TYPES  = ['success', 'warning', 'danger', 'info', 'primary', 'secondary', 'light', 'dark']
WIDGET_AUTOCOMPLETE  = 'autocomplete'
WIDGET_NATIVE  = 'native'

Properties

$dto  : FieldDto

Methods

addCssClass()  : self
addCssFiles()  : self
addFormTheme()  : self
addHtmlContentsToBody()  : self
addHtmlContentsToHead()  : self
addJsFiles()  : self
addWebpackEncoreEntries()  : self
allowMultipleChoices()  : self
autocomplete()  : self
escapeHtml()  : self
formatValue()  : self
getAsDto()  : FieldDto
hideOnDetail()  : self
hideOnForm()  : self
hideOnIndex()  : self
hideWhenCreating()  : self
hideWhenUpdating()  : self
new()  : self
onlyOnDetail()  : self
onlyOnForms()  : self
onlyOnIndex()  : self
onlyWhenCreating()  : self
onlyWhenUpdating()  : self
renderAsBadges()  : self
Possible values of $badgeSelector: * true: all values are displayed as 'secondary' badges * false: no badges are displayed; values are displayed as regular text * array: [$fieldValue => $badgeType, ...] (e.g. ['foo' => 'primary', 7 => 'warning', 'cancelled' => 'danger']) * callable: function(FieldDto $field): string { return '...' } (e.g. function(FieldDto $field) { return $field->getValue() < 10 ? 'warning' : 'primary'; }).
renderAsNativeWidget()  : self
renderExpanded()  : self
setChoices()  : self
Given choices must follow the same format used in Symfony Forms: ['Label visible to users' => 'submitted_value', ...].
setColumns()  : self
setCssClass()  : self
setCustomOption()  : self
setCustomOptions()  : self
setDisabled()  : self
setEmptyData()  : self
setFieldFqcn()  : self
setFormattedValue()  : self
setFormType()  : self
setFormTypeOption()  : self
setFormTypeOptionIfNotSet()  : self
setFormTypeOptions()  : self
setHelp()  : self
setLabel()  : self
setPermission()  : self
setProperty()  : self
setRequired()  : self
setSortable()  : self
setTemplateName()  : self
setTemplatePath()  : self
setTextAlign()  : self
setTranslatableChoices()  : self
When the contents of the choices use translatable objects, you can't use the setChoices() method because PHP doesn't allow using objects as array keys.
setTranslationParameters()  : self
setValue()  : self
setVirtual()  : self
__construct()  : mixed

Constants

OPTION_ALLOW_MULTIPLE_CHOICES

public mixed OPTION_ALLOW_MULTIPLE_CHOICES = 'allowMultipleChoices'

OPTION_AUTOCOMPLETE

public mixed OPTION_AUTOCOMPLETE = 'autocomplete'

OPTION_CHOICES

public mixed OPTION_CHOICES = 'choices'

OPTION_ESCAPE_HTML_CONTENTS

public mixed OPTION_ESCAPE_HTML_CONTENTS = 'escapeHtml'

OPTION_RENDER_AS_BADGES

public mixed OPTION_RENDER_AS_BADGES = 'renderAsBadges'

OPTION_RENDER_EXPANDED

public mixed OPTION_RENDER_EXPANDED = 'renderExpanded'

OPTION_USE_TRANSLATABLE_CHOICES

public mixed OPTION_USE_TRANSLATABLE_CHOICES = 'useTranslatableChoices'

VALID_BADGE_TYPES

public mixed VALID_BADGE_TYPES = ['success', 'warning', 'danger', 'info', 'primary', 'secondary', 'light', 'dark']

WIDGET_AUTOCOMPLETE

public mixed WIDGET_AUTOCOMPLETE = 'autocomplete'

Properties

Methods

addCssClass()

public addCssClass(string $cssClass) : self
Parameters
$cssClass : string
Return values
self

addCssFiles()

public addCssFiles(Asset|string ...$pathsOrAssets) : self
Parameters
$pathsOrAssets : Asset|string
Return values
self

addFormTheme()

public addFormTheme(string ...$formThemePaths) : self
Parameters
$formThemePaths : string
Return values
self

addHtmlContentsToBody()

public addHtmlContentsToBody(string ...$contents) : self
Parameters
$contents : string
Return values
self

addHtmlContentsToHead()

public addHtmlContentsToHead(string ...$contents) : self
Parameters
$contents : string
Return values
self

addJsFiles()

public addJsFiles(Asset|string ...$pathsOrAssets) : self
Parameters
$pathsOrAssets : Asset|string
Return values
self

addWebpackEncoreEntries()

public addWebpackEncoreEntries(Asset|string ...$entryNamesOrAssets) : self
Parameters
$entryNamesOrAssets : Asset|string
Return values
self

allowMultipleChoices()

public allowMultipleChoices([bool $allow = true ]) : self
Parameters
$allow : bool = true
Return values
self

autocomplete()

public autocomplete() : self
Return values
self

escapeHtml()

public escapeHtml([bool $escape = true ]) : self
Parameters
$escape : bool = true
Return values
self

formatValue()

public formatValue(callable|null $callable) : self
Parameters
$callable : callable|null
Return values
self

hideOnDetail()

public hideOnDetail() : self
Return values
self

hideOnForm()

public hideOnForm() : self
Return values
self

hideOnIndex()

public hideOnIndex() : self
Return values
self

hideWhenCreating()

public hideWhenCreating() : self
Return values
self

hideWhenUpdating()

public hideWhenUpdating() : self
Return values
self

onlyOnDetail()

public onlyOnDetail() : self
Return values
self

onlyOnForms()

public onlyOnForms() : self
Return values
self

onlyOnIndex()

public onlyOnIndex() : self
Return values
self

onlyWhenCreating()

public onlyWhenCreating() : self
Return values
self

onlyWhenUpdating()

public onlyWhenUpdating() : self
Return values
self

renderAsBadges()

Possible values of $badgeSelector: * true: all values are displayed as 'secondary' badges * false: no badges are displayed; values are displayed as regular text * array: [$fieldValue => $badgeType, ...] (e.g. ['foo' => 'primary', 7 => 'warning', 'cancelled' => 'danger']) * callable: function(FieldDto $field): string { return '...' } (e.g. function(FieldDto $field) { return $field->getValue() < 10 ? 'warning' : 'primary'; }).

public renderAsBadges([mixed $badgeSelector = true ]) : self

Possible badge types: 'success', 'warning', 'danger', 'info', 'primary', 'secondary', 'light', 'dark'

Parameters
$badgeSelector : mixed = true
Return values
self

renderAsNativeWidget()

public renderAsNativeWidget([bool $asNative = true ]) : self
Parameters
$asNative : bool = true
Return values
self

renderExpanded()

public renderExpanded([bool $expanded = true ]) : self
Parameters
$expanded : bool = true
Return values
self

setChoices()

Given choices must follow the same format used in Symfony Forms: ['Label visible to users' => 'submitted_value', ...].

public setChoices(mixed $choiceGenerator) : self

If the contents of the choice values are translatable objects, use the setTranslatableChoices() method instead: ['submitted_value' => t('Label visible to users'), ...].

In addition to an array, you can use a PHP callback, which is passed the instance of the current entity (it can be null) and the FieldDto as the second argument: ->setChoices(fn () => ['foo' => 1, 'bar' => 2]) ->setChoices(fn (?MyEntity $foo) => $foo->someField()->getChoices()) ->setChoices(fn (?MyEntity $foo, FieldDto $field) => ...)

Parameters
$choiceGenerator : mixed
Return values
self

setColumns()

public setColumns(int|string $cols) : self
Parameters
$cols : int|string

An integer with the number of columns that this field takes (e.g. 6), or a string with responsive col CSS classes (e.g. 'col-6 col-sm-4 col-lg-3')

Return values
self

setCssClass()

public setCssClass(string $cssClass) : self
Parameters
$cssClass : string
Return values
self

setCustomOption()

public setCustomOption(string $optionName, mixed $optionValue) : self
Parameters
$optionName : string
$optionValue : mixed
Return values
self

setCustomOptions()

public setCustomOptions(array<string|int, mixed> $options) : self
Parameters
$options : array<string|int, mixed>
Return values
self

setDisabled()

public setDisabled([bool $disabled = true ]) : self
Parameters
$disabled : bool = true
Return values
self

setEmptyData()

public setEmptyData([mixed $emptyData = null ]) : self
Parameters
$emptyData : mixed = null
Return values
self

setFieldFqcn()

public setFieldFqcn(string $fieldFqcn) : self
Parameters
$fieldFqcn : string
Return values
self

setFormattedValue()

public setFormattedValue(mixed $value) : self
Parameters
$value : mixed
Return values
self

setFormType()

public setFormType(string $formTypeFqcn) : self
Parameters
$formTypeFqcn : string
Return values
self

setFormTypeOption()

public setFormTypeOption(string $optionName, mixed $optionValue) : self
Parameters
$optionName : string

You can use "dot" notation to set nested options (e.g. 'attr.class')

$optionValue : mixed
Return values
self

setFormTypeOptionIfNotSet()

public setFormTypeOptionIfNotSet(string $optionName, mixed $optionValue) : self
Parameters
$optionName : string

You can use "dot" notation to set nested options (e.g. 'attr.class')

$optionValue : mixed
Return values
self

setFormTypeOptions()

public setFormTypeOptions(array<string|int, mixed> $options) : self
Parameters
$options : array<string|int, mixed>
Return values
self

setPermission()

public setPermission(string $permission) : self
Parameters
$permission : string
Return values
self

setProperty()

public setProperty(string $propertyName) : self
Parameters
$propertyName : string
Return values
self

setRequired()

public setRequired(bool $isRequired) : self
Parameters
$isRequired : bool
Return values
self

setSortable()

public setSortable(bool $isSortable) : self
Parameters
$isSortable : bool
Return values
self

setTemplateName()

public setTemplateName(string $name) : self
Parameters
$name : string
Return values
self

setTemplatePath()

public setTemplatePath(string $path) : self
Parameters
$path : string
Return values
self

setTextAlign()

public setTextAlign(string $textAlign) : self
Parameters
$textAlign : string

It can be 'left', 'center' or 'right'

Return values
self

setTranslatableChoices()

When the contents of the choices use translatable objects, you can't use the setChoices() method because PHP doesn't allow using objects as array keys.

public setTranslatableChoices(mixed $choiceGenerator) : self

Given choices must follow the opposite of the format used in Symfony Forms: ['submitted_value' => t('Label visible to users'), ...].

Parameters
$choiceGenerator : mixed
Return values
self

setTranslationParameters()

public setTranslationParameters(array<string|int, mixed> $parameters) : self
Parameters
$parameters : array<string|int, mixed>
Return values
self

setValue()

public setValue(mixed $value) : self
Parameters
$value : mixed
Return values
self

setVirtual()

public setVirtual(bool $isVirtual) : self
Parameters
$isVirtual : bool
Return values
self

        
On this page

Search results