Class yii\bootstrap\Dropdown
| Inheritance | yii\bootstrap\Dropdown » yii\bootstrap\Widget » yii\base\Widget » yii\base\Component » yii\base\BaseObject |
|---|---|
| Implements | yii\base\Configurable, yii\base\ViewContextInterface |
| Uses Traits | yii\bootstrap\BootstrapWidgetTrait |
| Available since version | 2.0 |
| Source Code | https://github.com/yiisoft/yii2-bootstrap/blob/master/Dropdown.php |
Dropdown renders a Bootstrap dropdown menu component.
For example,
<div class="dropdown">
<a href="#" data-toggle="dropdown" class="dropdown-toggle">Label <b class="caret"></b></a>
<?php
echo Dropdown::widget([
'items' => [
['label' => 'DropdownA', 'url' => '/'],
['label' => 'DropdownB', 'url' => '#'],
],
]);
?>
</div>
Public Properties
| Property | Type | Description | Defined By |
|---|---|---|---|
| $autoIdPrefix | string | The prefix to the automatically generated widget IDs. | yii\base\Widget |
| $clientEvents | array | The event handlers for the underlying Bootstrap JS plugin. | yii\bootstrap\BootstrapWidgetTrait |
| $clientOptions | array | The options for the underlying Bootstrap JS plugin. | yii\bootstrap\BootstrapWidgetTrait |
| $counter | integer | A counter used to generate \yii\base\id for widgets. | yii\base\Widget |
| $encodeLabels | boolean | Whether the labels for header items should be HTML-encoded. | yii\bootstrap\Dropdown |
| $items | array | List of menu items in the dropdown. | yii\bootstrap\Dropdown |
| $options | array | The HTML attributes for the widget container tag. | yii\bootstrap\Widget |
| $stack | yii\base\Widget[] | The widgets that are currently being rendered (not ended). | yii\base\Widget |
| $submenuOptions | array|null | The HTML attributes for sub-menu container tags. | yii\bootstrap\Dropdown |
Public Methods
| Method | Description | Defined By |
|---|---|---|
| __call() | Calls the named method which is not a class method. | yii\base\Component |
| __clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
| __construct() | Constructor. | yii\base\BaseObject |
| __get() | Returns the value of a component property. | yii\base\Component |
| __isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component |
| __set() | Sets the value of a component property. | yii\base\Component |
| __unset() | Sets a component property to be null. | yii\base\Component |
| afterRun() | This method is invoked right after a widget is executed. | yii\base\Widget |
| attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
| attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
| beforeRun() | This method is invoked right before the widget is executed. | yii\base\Widget |
| begin() | Begins a widget. | yii\base\Widget |
| behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
| canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component |
| canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component |
| className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
| detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
| detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
| end() | Ends a widget. | yii\base\Widget |
| ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
| getBehavior() | Returns the named behavior object. | yii\base\Component |
| getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
| getId() | Returns the ID of the widget. | yii\base\Widget |
| getView() | yii\bootstrap\BootstrapWidgetTrait | |
| getViewPath() | Returns the directory containing the view files for this widget. | yii\base\Widget |
| hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
| hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component |
| hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component |
| init() | Initializes the widget. | yii\bootstrap\Dropdown |
| off() | Detaches an existing event handler from this component. | yii\base\Component |
| on() | Attaches an event handler to an event. | yii\base\Component |
| render() | Renders a view. | yii\base\Widget |
| renderFile() | Renders a view file. | yii\base\Widget |
| run() | Renders the widget. | yii\bootstrap\Dropdown |
| setId() | Sets the ID of the widget. | yii\base\Widget |
| setView() | Sets the view object to be used by this widget. | yii\base\Widget |
| trigger() | Triggers an event. | yii\base\Component |
| widget() | Creates a widget instance and runs it. | yii\base\Widget |
Protected Methods
| Method | Description | Defined By |
|---|---|---|
| registerClientEvents() | Registers JS event handlers that are listed in $clientEvents. | yii\bootstrap\BootstrapWidgetTrait |
| registerPlugin() | Registers a specific Bootstrap plugin and the related events | yii\bootstrap\BootstrapWidgetTrait |
| renderItems() | Renders menu items. | yii\bootstrap\Dropdown |
Events
| Event | Type | Description | Defined By |
|---|---|---|---|
| EVENT_AFTER_RUN | yii\base\WidgetEvent | An event raised right after executing a widget. (available since version 2.0.11) | yii\base\Widget |
| EVENT_BEFORE_RUN | yii\base\WidgetEvent | An event raised right before executing a widget. (available since version 2.0.11) | yii\base\Widget |
| EVENT_INIT | yii\base\Event | An event that is triggered when the widget is initialized via init(). (available since version 2.0.11) | yii\base\Widget |
Property Details
Whether the labels for header items should be HTML-encoded.
List of menu items in the dropdown. Each array element can be either an HTML string, or an array representing a single menu with the following structure:
- label: string, required, the label of the item link.
- encode: bool, optional, whether to HTML-encode item label.
- url: string|array, optional, the URL of the item link. This will be processed by yii\helpers\Url::to(). If not set, the item will be treated as a menu header when the item has no sub-menu.
- visible: bool, optional, whether this menu item is visible. Defaults to true.
- linkOptions: array, optional, the HTML attributes of the item link.
- options: array, optional, the HTML attributes of the item.
- items: array, optional, the submenu items. The structure is the same as this property. Note that Bootstrap doesn't support dropdown submenu. You have to add your own CSS styles to support it.
- submenuOptions: array, optional, the HTML attributes for sub-menu container tag. If specified it will be merged with $submenuOptions.
To insert divider use <li role="presentation" class="divider"></li>.
The HTML attributes for sub-menu container tags. If not set - $options value will be used for it.
Method Details
Initializes the widget.
If you override this method, make sure you call the parent implementation first.
| public void init ( ) |
Renders menu items.
| protected string renderItems ( $items, $options = [] ) | ||
| $items | array | The menu items to be rendered |
| $options | array | The container HTML attributes |
| return | string | The rendering result. |
|---|---|---|
| throws | yii\base\InvalidConfigException | if the label option is not specified in one of the items. |
Renders the widget.
| public void run ( ) |