ButtonMenu
API reference › Bootstrap 6 › ButtonMenu
Renders a button that toggles a Menu, or a split button group with a separate menu toggle.
$options holds the attributes of the element that carries data-bs-toggle="menu", so its id is the target
of the Menu plugin initialization and of $clientEvents.
See also: https://getbootstrap.com/docs/6.0/components/menu/, https://getbootstrap.com/docs/6.0/components/button-group/.
Properties
Section titled “Properties”| Property | Type | Description | Defined by |
|---|---|---|---|
$autoClose | bool| | Auto close behavior: true, false, inside, or outside; null keeps the plugin default. Default: null. | ButtonMenu |
$autoIdPrefix static | string | The prefix to the automatically generated widget IDs. Default: 'w'. | yii\ |
$behaviors read-only | array<yii\<static>> | List of behaviors attached to this component. | yii\ |
$buttonOptions | array<array-key, | HTML attributes of the action button in split mode; the href option is used when $tagName is a. Default: []. | ButtonMenu |
$clientEvents | array<string, yii\| | Event handlers attached to the widget element, as event name => JavaScript handler source. Default: []. | BootstrapWidgetTrait |
$clientOptions | array<string, | Options passed to the plugin constructor, or false to skip the JavaScript initialization. Default: []. | BootstrapWidgetTrait |
$containerOptions | array<array-key, | HTML attributes of the .btn-group container; the tag option sets the tag name (default div). Default: []. | ButtonMenu |
$encodeLabel | bool | Whether to HTML-encode $label. Default: true. | ButtonMenu |
$id | string | Id of the widget. | yii\ |
$label | string|Stringable| | Button label, or null to use the translated Button text. Default: null. | ButtonMenu |
$menu | array<string, | Configuration of the Menu widget; its id defaults to {id}-menu. Default: []. | ButtonMenu |
$menuClass | class-string<Menu> | Class of the menu widget. Default: \. | ButtonMenu |
$options | array<string, | HTML attributes of the widget container tag. Default: []. | Widget |
$placement | yii2\| | Menu placement, such as top or bottom-start md:bottom-end; null keeps the plugin default. Default: null. | ButtonMenu |
$renderContainer | bool | Whether to render the .btn-group container when $split is false. Default: false. | ButtonMenu |
$size | yii2\| | Button size, or null for the default size. Default: null. | ButtonMenu |
$split | bool | Whether to render a split button: an action button followed by a .menu-toggle-split toggle. Default: false. | ButtonMenu |
$splitIcon | string | HTML rendered inside the split toggle before its visually hidden text, for example an icon. Default: ''. | ButtonMenu |
$tagName | string | Tag name of the main button, either button or a. Default: 'button'. | ButtonMenu |
$theme | yii2\| | Theme color, or null for the default color. Default: null. | ButtonMenu |
$variant | yii2\| | Button style class, or null to render no style class. Default: \. | ButtonMenu |
$view | yii\ | The view object that can be used to render views or view files. | yii\ |
$viewPath read-only | string | The directory containing the view files for this widget. | yii\ |
Methods
Section titled “Methods”| Method | Description | Defined by |
|---|---|---|
__construct() | Constructor. | yii\ |
__call() | Calls the named method which is not a class method. | yii\ |
__clone() | This method is called after the object is created by cloning an existing one. | yii\ |
__get() | Returns the value of a component property. | yii\ |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\ |
__set() | Sets the value of a component property. | yii\ |
__unset() | Sets a component property to be null. | yii\ |
addAttributes() | Adds a set of HTML attributes; attributes already set with the same name are replaced. | AttributesTrait |
addClass() | Adds one or more CSS classes to the existing classes; duplicated classes are collapsed. | AttributesTrait |
addCssStyle() | Adds CSS style properties to the style attribute. | AttributesTrait |
afterRun() | This method is invoked right after a widget is executed. | yii\ |
attachBehavior() | Attaches a behavior to this component. | yii\ |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\ |
attribute() | Sets an HTML attribute value. | AttributesTrait |
beforeRun() | This method is invoked right before the widget is executed. | yii\ |
begin() static | Begins a widget. | yii\ |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\ |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\ |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\ |
class() | Replaces the existing CSS classes with the specified ones. | AttributesTrait |
className() static | Returns the fully qualified name of this class. | yii\ |
detachBehavior() | Detaches a behavior from the component. | yii\ |
detachBehaviors() | Detaches all behaviors from the component. | yii\ |
end() static | Ends a widget. | yii\ |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\ |
getBehavior() | Returns the named behavior object. | yii\ |
getBehaviors() | Returns all behaviors attached to this component. | yii\ |
getId() | Returns the ID of the widget. | yii\ |
getView() | Returns the view object that can be used to render views or view files. | yii\ |
getViewPath() | Returns the directory containing the view files for this widget. | yii\ |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\ |
hasMethod() | Returns a value indicating whether a method is defined. | yii\ |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\ |
init() | Initializes the widget and validates $placement, $size, $theme, and $variant. | ButtonMenu |
off() | Detaches an existing event handler from this component. | yii\ |
on() | Attaches an event handler to an event. | yii\ |
render() | Renders a view. | yii\ |
renderFile() | Renders a view file. | yii\ |
run() | ButtonMenu | |
setId() | Sets the ID of the widget. | yii\ |
setView() | Sets the view object to be used by this widget. | yii\ |
trigger() | Triggers an event. | yii\ |
widget() static | Creates a widget instance and runs it. | yii\ |
pluginInitialization() protected | Returns the JavaScript that initializes a plugin with its normalized constructor options. | BootstrapWidgetTrait |
registerClientEvents() protected | Registers the JavaScript event handlers listed in $clientEvents at View::POS_END. | BootstrapWidgetTrait |
registerPlugin() protected | Registers the plugin asset, the plugin initialization when needed, and the $clientEvents. | BootstrapWidgetTrait |
renderButton() protected | Renders a button with the style, theme, and size classes. | ButtonMenu |
Events
Section titled “Events”| Event | Type | Description | Defined by |
|---|---|---|---|
EVENT_INIT | yii\ | An event that is triggered when the widget is initialized via init(). Event name: 'init'. Available since 2.0.11. | yii\ |
EVENT_BEFORE_RUN | yii\ | An event raised right before executing a widget. Event name: 'beforeRun'. Available since 2.0.11. | yii\ |
EVENT_AFTER_RUN | yii\ | An event raised right after executing a widget. Event name: 'afterRun'. Available since 2.0.11. | yii\ |
Method details
Section titled “Method details”init()
Section titled “init() ”public function init(): voidInitializes the widget and validates $placement, $size, $theme, and $variant.
Throws
yii\base\InvalidConfigException: if one of them is not a value of its enum;$placementalso accepts breakpoint-prefixed values.
run()
Section titled “run() ”public function run(): stringrenderButton()
Section titled “renderButton() ”protected function renderButton(string $tagName, string $content, array<array-key, mixed> $options): stringRenders a button with the style, theme, and size classes.
Parameters
| Parameter | Type | Description |
|---|---|---|
$tagName | string | Tag name, either button or a. |
$content | string | Button content, already encoded. |
$options | array<array-key, | HTML attributes of the button. |
Returns
string