RadioGroup
extends Group
in package
A Radio Group is an interactive component for selecting exactly one option from a defined list. Radio Groups are available in modals and must be placed inside a Label.
Tags
Table of Contents
Constants
- TYPE_ACTION_ROW = 1
- Container to display a row of interactive components.
- TYPE_BUTTON = 2
- Button object.
- TYPE_CHANNEL_SELECT = 8
- Select menu for channels.
- TYPE_CHECKBOX = 23
- Single checkbox for binary choice.
- TYPE_CHECKBOX_GROUP = 22
- Multi-select group of checkboxes.
- TYPE_CHECKPOINT_CARD = 20
- Undocumented. Used by the client for checkpoint.
- TYPE_CONTAINER = 17
- Container that visually groups a set of components.
- TYPE_CONTENT_INVENTORY_ENTRY = 16
- Undocumented.
- TYPE_FILE = 13
- Displays an attached file.
- TYPE_FILE_UPLOAD = 19
- Component for uploading files.
- TYPE_LABEL = 18
- Container associating a label and description with a component.
- TYPE_MEDIA_GALLERY = 12
- Display images and other media.
- TYPE_MENTIONABLE_SELECT = 7
- Select menu for mentionables (users and roles).
- TYPE_RADIO_GROUP = 21
- Single-choice set of radio options.
- TYPE_ROLE_SELECT = 6
- Select menu for roles.
- TYPE_SECTION = 9
- Container to display text alongside an accessory component.
- TYPE_SELECT_MENU = \Discord\Builders\Components\ComponentObject::TYPE_STRING_SELECT
- TYPE_SEPARATOR = 14
- Component to add vertical padding between other components.
- TYPE_STRING_SELECT = 3
- Select menu for picking from defined text options.
- TYPE_TEXT_DISPLAY = 10
- Markdown text.
- TYPE_TEXT_INPUT = 4
- Text input object.
- TYPE_THUMBNAIL = 11
- Small image that can be used as an accessory.
- TYPE_USER_SELECT = 5
- Select menu for users.
- TYPES = [ 0 => \Discord\Builders\Components\ComponentObject::class, // Fallback for unknown types \Discord\Builders\Components\ComponentObject::TYPE_ACTION_ROW => \Discord\Builders\Components\ActionRow::class, \Discord\Builders\Components\ComponentObject::TYPE_BUTTON => \Discord\Builders\Components\Button::class, \Discord\Builders\Components\ComponentObject::TYPE_STRING_SELECT => \Discord\Builders\Components\StringSelect::class, \Discord\Builders\Components\ComponentObject::TYPE_TEXT_INPUT => \Discord\Builders\Components\TextInput::class, \Discord\Builders\Components\ComponentObject::TYPE_USER_SELECT => \Discord\Builders\Components\UserSelect::class, \Discord\Builders\Components\ComponentObject::TYPE_ROLE_SELECT => \Discord\Builders\Components\RoleSelect::class, \Discord\Builders\Components\ComponentObject::TYPE_MENTIONABLE_SELECT => \Discord\Builders\Components\MentionableSelect::class, \Discord\Builders\Components\ComponentObject::TYPE_CHANNEL_SELECT => \Discord\Builders\Components\ChannelSelect::class, \Discord\Builders\Components\ComponentObject::TYPE_SECTION => \Discord\Builders\Components\Section::class, \Discord\Builders\Components\ComponentObject::TYPE_TEXT_DISPLAY => \Discord\Builders\Components\TextDisplay::class, \Discord\Builders\Components\ComponentObject::TYPE_THUMBNAIL => \Discord\Builders\Components\Thumbnail::class, \Discord\Builders\Components\ComponentObject::TYPE_MEDIA_GALLERY => \Discord\Builders\Components\MediaGallery::class, \Discord\Builders\Components\ComponentObject::TYPE_FILE => \Discord\Builders\Components\File::class, \Discord\Builders\Components\ComponentObject::TYPE_SEPARATOR => \Discord\Builders\Components\Separator::class, \Discord\Builders\Components\ComponentObject::TYPE_CONTAINER => \Discord\Builders\Components\Container::class, \Discord\Builders\Components\ComponentObject::TYPE_LABEL => \Discord\Builders\Components\Label::class, \Discord\Builders\Components\ComponentObject::TYPE_FILE_UPLOAD => \Discord\Builders\Components\FileUpload::class, \Discord\Builders\Components\ComponentObject::TYPE_RADIO_GROUP => \Discord\Builders\Components\RadioGroup::class, \Discord\Builders\Components\ComponentObject::TYPE_CHECKBOX_GROUP => \Discord\Builders\Components\CheckboxGroup::class, \Discord\Builders\Components\ComponentObject::TYPE_CHECKBOX => \Discord\Builders\Components\Checkbox::class, ]
- Available components and their respective classes.
- USAGE = ['Modal']
Properties
- $custom_id : string
- $options : array<string|int, RadioGroupOption>
- List of options to render.
- $id : int|null
- 32 bit integer used as an optional identifier for component.
- $required : bool|null
- Whether selecting an option is required or not.
- $type : mixed
Methods
- __construct() : mixed
- Creates a new radio group.
- __get() : mixed
- Handles dynamic get calls onto the part.
- __set() : void
- Handles dynamic set calls onto the part.
- addOption() : $this
- Adds an option to the group. Maximum 10 options.
- fromPart() : self
- Creates a new instance of the builder from a given Part.
- getCustomId() : string|null
- Returns the custom ID of the button.
- getOptions() : array<string|int, mixed>
- Gets the options.
- getRequired() : bool|null
- Gets whether this component is required to be filled.
- getType() : int
- Retrieves the type of the component.
- jsonSerialize() : array<string|int, mixed>
- new() : self
- Creates a new radio group component.
- removeOption() : $this
- Removes an option from the group.
- setCustomId() : $this
- Sets the custom ID for the interactive component.
- setOptions() : $this
- List of options to render.
- setRequired() : $this
- Set if this component is required to be filled, default false. (Modal only).
- checkForGetMutator() : string|false
- Checks if there is a get mutator present.
- checkForSetMutator() : string|false
- Checks if there is a set mutator present.
- generateUuid() : string
- Generates a UUID which can be used for component custom IDs.
- getId() : int|null
- Retrieves the ID associated with the interactive component.
- getProperty() : mixed
- Gets a property on the parent part.
- setId() : self
- The id field is optional and is used to identify components in the response from an interaction. The id must be unique within the message and is generated sequentially if left empty. Generation of ids won't use another id that exists in the message if you have one defined for another component. Sending components with an id of 0 is allowed but will be treated as empty and replaced by the API. 32 bit integer used as an optional identifier for component.
- setProperty() : void
- Sets an property on the parent part.
- studly() : string
- Converts a string to studlyCase.
Constants
TYPE_ACTION_ROW
Container to display a row of interactive components.
public
mixed
TYPE_ACTION_ROW
= 1
TYPE_BUTTON
Button object.
public
mixed
TYPE_BUTTON
= 2
TYPE_CHANNEL_SELECT
Select menu for channels.
public
mixed
TYPE_CHANNEL_SELECT
= 8
TYPE_CHECKBOX
Single checkbox for binary choice.
public
mixed
TYPE_CHECKBOX
= 23
TYPE_CHECKBOX_GROUP
Multi-select group of checkboxes.
public
mixed
TYPE_CHECKBOX_GROUP
= 22
TYPE_CHECKPOINT_CARD
Undocumented. Used by the client for checkpoint.
public
mixed
TYPE_CHECKPOINT_CARD
= 20
TYPE_CONTAINER
Container that visually groups a set of components.
public
mixed
TYPE_CONTAINER
= 17
TYPE_CONTENT_INVENTORY_ENTRY
Undocumented.
public
mixed
TYPE_CONTENT_INVENTORY_ENTRY
= 16
TYPE_FILE
Displays an attached file.
public
mixed
TYPE_FILE
= 13
TYPE_FILE_UPLOAD
Component for uploading files.
public
mixed
TYPE_FILE_UPLOAD
= 19
TYPE_LABEL
Container associating a label and description with a component.
public
mixed
TYPE_LABEL
= 18
TYPE_MEDIA_GALLERY
Display images and other media.
public
mixed
TYPE_MEDIA_GALLERY
= 12
TYPE_MENTIONABLE_SELECT
Select menu for mentionables (users and roles).
public
mixed
TYPE_MENTIONABLE_SELECT
= 7
TYPE_RADIO_GROUP
Single-choice set of radio options.
public
mixed
TYPE_RADIO_GROUP
= 21
TYPE_ROLE_SELECT
Select menu for roles.
public
mixed
TYPE_ROLE_SELECT
= 6
TYPE_SECTION
Container to display text alongside an accessory component.
public
mixed
TYPE_SECTION
= 9
TYPE_SELECT_MENU
Use ComponentObject::TYPE_STRING_SELECT
public
mixed
TYPE_SELECT_MENU
= \Discord\Builders\Components\ComponentObject::TYPE_STRING_SELECT
TYPE_SEPARATOR
Component to add vertical padding between other components.
public
mixed
TYPE_SEPARATOR
= 14
TYPE_STRING_SELECT
Select menu for picking from defined text options.
public
mixed
TYPE_STRING_SELECT
= 3
TYPE_TEXT_DISPLAY
Markdown text.
public
mixed
TYPE_TEXT_DISPLAY
= 10
TYPE_TEXT_INPUT
Text input object.
public
mixed
TYPE_TEXT_INPUT
= 4
TYPE_THUMBNAIL
Small image that can be used as an accessory.
public
mixed
TYPE_THUMBNAIL
= 11
TYPE_USER_SELECT
Select menu for users.
public
mixed
TYPE_USER_SELECT
= 5
TYPES
Available components and their respective classes.
public
array<int, string>
TYPES
= [
0 => \Discord\Builders\Components\ComponentObject::class,
// Fallback for unknown types
\Discord\Builders\Components\ComponentObject::TYPE_ACTION_ROW => \Discord\Builders\Components\ActionRow::class,
\Discord\Builders\Components\ComponentObject::TYPE_BUTTON => \Discord\Builders\Components\Button::class,
\Discord\Builders\Components\ComponentObject::TYPE_STRING_SELECT => \Discord\Builders\Components\StringSelect::class,
\Discord\Builders\Components\ComponentObject::TYPE_TEXT_INPUT => \Discord\Builders\Components\TextInput::class,
\Discord\Builders\Components\ComponentObject::TYPE_USER_SELECT => \Discord\Builders\Components\UserSelect::class,
\Discord\Builders\Components\ComponentObject::TYPE_ROLE_SELECT => \Discord\Builders\Components\RoleSelect::class,
\Discord\Builders\Components\ComponentObject::TYPE_MENTIONABLE_SELECT => \Discord\Builders\Components\MentionableSelect::class,
\Discord\Builders\Components\ComponentObject::TYPE_CHANNEL_SELECT => \Discord\Builders\Components\ChannelSelect::class,
\Discord\Builders\Components\ComponentObject::TYPE_SECTION => \Discord\Builders\Components\Section::class,
\Discord\Builders\Components\ComponentObject::TYPE_TEXT_DISPLAY => \Discord\Builders\Components\TextDisplay::class,
\Discord\Builders\Components\ComponentObject::TYPE_THUMBNAIL => \Discord\Builders\Components\Thumbnail::class,
\Discord\Builders\Components\ComponentObject::TYPE_MEDIA_GALLERY => \Discord\Builders\Components\MediaGallery::class,
\Discord\Builders\Components\ComponentObject::TYPE_FILE => \Discord\Builders\Components\File::class,
\Discord\Builders\Components\ComponentObject::TYPE_SEPARATOR => \Discord\Builders\Components\Separator::class,
\Discord\Builders\Components\ComponentObject::TYPE_CONTAINER => \Discord\Builders\Components\Container::class,
\Discord\Builders\Components\ComponentObject::TYPE_LABEL => \Discord\Builders\Components\Label::class,
\Discord\Builders\Components\ComponentObject::TYPE_FILE_UPLOAD => \Discord\Builders\Components\FileUpload::class,
\Discord\Builders\Components\ComponentObject::TYPE_RADIO_GROUP => \Discord\Builders\Components\RadioGroup::class,
\Discord\Builders\Components\ComponentObject::TYPE_CHECKBOX_GROUP => \Discord\Builders\Components\CheckboxGroup::class,
\Discord\Builders\Components\ComponentObject::TYPE_CHECKBOX => \Discord\Builders\Components\Checkbox::class,
]
USAGE
public
mixed
USAGE
= ['Modal']
Tags
Properties
$custom_id
public
string
$custom_id
Developer-defined identifier for the input; 1-100 characters.
$options
List of options to render.
public
array<string|int, RadioGroupOption>
$options
List of options to render; min 2, max 10.
$id
32 bit integer used as an optional identifier for component.
protected
int|null
$id
$required
Whether selecting an option is required or not.
protected
bool|null
$required
$type
protected
mixed
$type
= \Discord\Builders\Components\ComponentObject::TYPE_RADIO_GROUP
Tags
Methods
__construct()
Creates a new radio group.
public
__construct([string|null $custom_id = null ]) : mixed
Parameters
- $custom_id : string|null = null
-
custom ID of the radio group. If not given, a UUID will be used.
Tags
__get()
Handles dynamic get calls onto the part.
public
__get(string $key) : mixed
Parameters
- $key : string
-
The attributes key.
Tags
Return values
mixed —The value of the attribute.
__set()
Handles dynamic set calls onto the part.
public
__set(string $key, mixed $value) : void
Parameters
- $key : string
-
The attributes key.
- $value : mixed
-
The attributes value.
Tags
addOption()
Adds an option to the group. Maximum 10 options.
public
addOption(GroupOption $option) : $this
Parameters
- $option : GroupOption
-
Option to add.
Tags
Return values
$thisfromPart()
Creates a new instance of the builder from a given Part.
public
static fromPart(Part $part) : self
Parameters
- $part : Part
Return values
selfgetCustomId()
Returns the custom ID of the button.
public
getCustomId() : string|null
Return values
string|nullgetOptions()
Gets the options.
public
getOptions() : array<string|int, mixed>
Return values
array<string|int, mixed>getRequired()
Gets whether this component is required to be filled.
public
getRequired() : bool|null
Return values
bool|nullgetType()
Retrieves the type of the component.
public
getType() : int
Return values
intjsonSerialize()
public
jsonSerialize() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>new()
Creates a new radio group component.
public
static new([string|null $custom_id = null ]) : self
Parameters
- $custom_id : string|null = null
-
ID for the radio group.
Return values
selfremoveOption()
Removes an option from the group.
public
removeOption(GroupOption $option) : $this
Parameters
- $option : GroupOption
-
Option to remove.
Return values
$thissetCustomId()
Sets the custom ID for the interactive component.
public
setCustomId(string|null $custom_id) : $this
Parameters
- $custom_id : string|null
Tags
Return values
$thissetOptions()
List of options to render.
public
setOptions([array<string|int, GroupOption> $options = [] ]) : $this
Parameters
- $options : array<string|int, GroupOption> = []
-
List of GroupOption objects.
Return values
$thissetRequired()
Set if this component is required to be filled, default false. (Modal only).
public
setRequired([bool|null $required = null ]) : $this
Parameters
- $required : bool|null = null
Return values
$thischeckForGetMutator()
Checks if there is a get mutator present.
protected
checkForGetMutator(string $key) : string|false
Parameters
- $key : string
-
The property name to check.
Return values
string|false —Either a string if it is a method or false.
checkForSetMutator()
Checks if there is a set mutator present.
protected
checkForSetMutator(string $key) : string|false
Parameters
- $key : string
-
The property name to check.
Return values
string|false —Either a string if it is a method or false.
generateUuid()
Generates a UUID which can be used for component custom IDs.
protected
static generateUuid() : string
Return values
stringgetId()
Retrieves the ID associated with the interactive component.
protected
getId() : int|null
Always returns null as this component does not have an ID.
Return values
int|nullgetProperty()
Gets a property on the parent part.
protected
getProperty(string $key) : mixed
Parameters
- $key : string
-
The name of the property.
Tags
Return values
mixed —Either the property if it exists or void.
setId()
The id field is optional and is used to identify components in the response from an interaction. The id must be unique within the message and is generated sequentially if left empty. Generation of ids won't use another id that exists in the message if you have one defined for another component. Sending components with an id of 0 is allowed but will be treated as empty and replaced by the API. 32 bit integer used as an optional identifier for component.
protected
setId([string|null $id = null ]) : self
Parameters
- $id : string|null = null
-
32 bit integer used as an optional identifier for component.
Return values
selfsetProperty()
Sets an property on the parent part.
protected
setProperty(string $key, mixed $value) : void
Parameters
- $key : string
-
The name of the property.
- $value : mixed
-
The value of the property.
studly()
Converts a string to studlyCase.
private
static studly(string $string) : string
This is a port of updated Laravel's implementation, a non-regex with static cache. This method is private static as we may move it outside this class in future.
Parameters
- $string : string
-
The string to convert.