Menu
API reference › Bootstrap 6 › Menu
Renders the Bootstrap .menu panel with links, buttons, headers, dividers, text, and nested submenus.
The widget renders only the panel. Place it right after the element that carries data-bs-toggle="menu", or use
ButtonMenu or Nav, which render the toggle. The Menu plugin binds to that toggle through the data API,
so its options belong on the toggle as data-bs-* attributes.
See also: https://getbootstrap.com/docs/6.0/components/menu/.
Properties
Section titled “Properties”| Property | Type | Description | Defined by |
|---|---|---|---|
$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\ |
$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 |
$encodeLabels | bool | Whether to HTML-encode the item labels; the item encode option takes precedence. Default: true. | Menu |
$id | string | Id of the widget. | yii\ |
$items | array<array-key,yii2\| | Menu items: MenuItem instances, arrays converted through MenuItem::fromArray(), or strings. Default: []. | Menu |
$options | array<string, | HTML attributes of the widget container tag. Default: []. | Widget |
$submenuOptions | array<array-key, | HTML attributes of every nested .menu panel. Default: []. | Menu |
$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 object. | yii\ |
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() | Menu | |
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 |
renderItems() protected | Renders the menu items inside a .menu panel. | Menu |
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\ |
Property details
Section titled “Property details”$items
Section titled “$items ”public array<array-key, array<array-key, mixed>|yii2\extensions\bootstrap6\item\MenuItem|string> $items = []Menu items: MenuItem instances, arrays converted through MenuItem::fromArray(), or strings.
An array item accepts the following options:
label:string|Stringable, required for links and buttons.url:array|string, processed byUrl::to(). Without it the item renders a<button>.active:bool, adds theactiveclass andaria-current="true".disabled:bool, disables the item; links lose theirhrefand getaria-disabled="true".visible:bool, whether to render the item. Defaults totrue.encode:bool, whether to HTML-encode the label, header, or text.linkOptions:array, HTML attributes of the.menu-itemelement.items:array, items of a nested submenu, rendered inside a.submenuwrapper.options:array, HTML attributes of the.submenuwrapper, header, text, or divider.submenuOptions:array, HTML attributes of the nested.menu, merged over$submenuOptions.header:string|Stringable, renders<h6 class="menu-header">instead of an item.text:string|Stringable, renders<span class="menu-text">instead of an item.divider:bool, renders<hr class="menu-divider">instead of an item.
The string - renders a divider; any other string is rendered as is.
Method details
Section titled “Method details”run()
Section titled “run() ”public function run(): stringrenderItems()
Section titled “renderItems() ”protected function renderItems(array<array-key, yii2\extensions\bootstrap6\item\MenuItem|string> $items, array<array-key, mixed> $options): stringRenders the menu items inside a .menu panel.
Parameters
| Parameter | Type | Description |
|---|---|---|
$items | array<array-key, yii2\| | Items to render, see $items. |
$options | array<array-key, | HTML attributes of the panel. |
Returns
string