Class yii\bootstrap5\Nav
Nav renders a nav HTML component.
For example:
echo Nav::widget([
'items' => [
[
'label' => 'Home',
'url' => ['site/index'],
'linkOptions' => [...],
],
[
'label' => 'Dropdown',
'items' => [
['label' => 'Level 1 - Dropdown A', 'url' => '#'],
'<div class="dropdown-divider"></div>',
'<div class="dropdown-header">Dropdown Header</div>',
['label' => 'Level 1 - Dropdown B', 'url' => '#'],
],
],
[
'label' => 'Login',
'url' => ['site/login'],
'visible' => Yii::$app->user->isGuest
],
],
'options' => ['class' =>'nav-pills'], // set this to nav-tabs to get tab-styled navigation
]);
Note: Multilevel dropdowns beyond Level 1 are not supported in Bootstrap 5.
See also:
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$activateItems | boolean | Whether to automatically activate items according to whether their route setting matches the currently requested route. | yii\bootstrap5\Nav |
$activateParents | boolean | Whether to activate parent menu items when one of the corresponding child menu items is active. | yii\bootstrap5\Nav |
$autoIdPrefix | string | The prefix to the automatically generated widget IDs. | yii\base\Widget |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component. | yii\base\Component |
$clientEvents | array | The event handlers for the underlying Bootstrap JS plugin. | yii\bootstrap5\BootstrapWidgetTrait |
$clientOptions | array|boolean | The options for the underlying Bootstrap JS plugin. | yii\bootstrap5\BootstrapWidgetTrait |
$counter | integer | A counter used to generate $id for widgets. | yii\base\Widget |
$dropdownClass | string | Name of a class to use for rendering dropdowns within this widget. | yii\bootstrap5\Nav |
$encodeLabels | boolean | Whether the nav items labels should be HTML-encoded. | yii\bootstrap5\Nav |
$id | string|null | ID of the widget. Note that the type of this property differs in getter and setter. See getId() and setId() for details. | yii\base\Widget |
$items | array | List of items in the nav widget. | yii\bootstrap5\Nav |
$options | array | The HTML attributes for the widget container tag. | yii\bootstrap5\Widget |
$params | array|null | The parameters used to determine if a menu item is active or not. | yii\bootstrap5\Nav |
$route | string|null | The route used to determine if a menu item is active or not. | yii\bootstrap5\Nav |
$stack | yii\base\Widget[] | The widgets that are currently being rendered (not ended). | yii\base\Widget |
$view | yii\web\View | The view object that can be used to render views or view files. Note that the type of this property differs in getter and setter. See getView() and setView() for details. | yii\base\Widget |
$viewPath | string | The directory containing the view files for this widget. | yii\base\Widget |
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() | Returns the view object that can be used to render views or view files. | yii\base\Widget |
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() | {@inheritDoc} | yii\bootstrap5\Nav |
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 |
renderItem() | Renders a widget's item. | yii\bootstrap5\Nav |
renderItems() | Renders widget items. | yii\bootstrap5\Nav |
run() | Renders the widget. | yii\bootstrap5\Nav |
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 |
---|---|---|
isChildActive() | Check to see if a child item is active optionally activating the parent. | yii\bootstrap5\Nav |
isItemActive() | Checks whether a menu item is active. | yii\bootstrap5\Nav |
registerClientEvents() | Registers JS event handlers that are listed in $clientEvents. | yii\bootstrap5\BootstrapWidgetTrait |
registerPlugin() | Registers a specific Bootstrap plugin and the related events | yii\bootstrap5\BootstrapWidgetTrait |
renderDropdown() | Renders the given items as a dropdown. | yii\bootstrap5\Nav |
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 to automatically activate items according to whether their route setting matches the currently requested route.
See also isItemActive().
Whether to activate parent menu items when one of the corresponding child menu items is active.
Name of a class to use for rendering dropdowns within this widget. Defaults to yii\bootstrap5\Dropdown.
Whether the nav items labels should be HTML-encoded.
List of items in the nav widget. Each array element represents a single menu item which can be either a string or an array with the following structure:
- label: string, required, the nav item label.
- url: optional, the item's URL. Defaults to "#".
- visible: bool, optional, whether this menu item is visible. Defaults to true.
- disabled: bool, optional, whether this menu item is disabled. Defaults to false.
- linkOptions: array, optional, the HTML attributes of the item's link.
- options: array, optional, the HTML attributes of the item container (LI).
- active: bool, optional, whether the item should be on active state or not.
- dropdownOptions: array, optional, the HTML options that will passed to the yii\bootstrap5\Dropdown widget.
- items: array|string, optional, the configuration array for creating a yii\bootstrap5\Dropdown widget, or a string representing the dropdown menu. Note that Bootstrap does not support sub-dropdown menus.
- encode: bool, optional, whether the label will be HTML-encoded. If set, supersedes the $encodeLabels option for only this item.
If a menu item is a string, it will be rendered directly without HTML encoding.
The parameters used to determine if a menu item is active or not.
If not set, it will use $_GET
.
See also:
The route used to determine if a menu item is active or not. If not set, it will use the route of the current request.
See also:
Method Details
{@inheritDoc}
public void init ( ) |
Check to see if a child item is active optionally activating the parent.
See also $items.
protected array isChildActive ( array $items, \yii\bootstrap5\bool &$active ) | ||
$items | array | @see items |
$active | boolean | Should the parent be active too |
throws | Exception |
---|
Checks whether a menu item is active.
This is done by checking if $route and $params match that specified in the url
option of the menu item.
When the url
option of a menu item is specified in terms of an array, its first element is treated
as the route for the item and the rest of the elements are the associated parameters.
Only when its route and parameters match $route and $params, respectively, will a menu item
be considered active.
protected boolean isItemActive ( array $item ) | ||
$item | array | The menu item to be checked |
return | boolean | Whether the menu item is active |
---|---|---|
throws | Exception |
Renders the given items as a dropdown.
This method is called to create sub-menus.
protected string renderDropdown ( array $items, array $parentItem ) | ||
$items | array | The given items. Please refer to yii\bootstrap5\Dropdown::$items for the array structure. |
$parentItem | array | The parent item information. Please refer to $items for the structure of this array. |
return | string | The rendering result. |
---|---|---|
throws | Throwable |
Renders a widget's item.
public string renderItem ( $item ) | ||
$item | string|array | The item to render. |
return | string | The rendering result. |
---|---|---|
throws | yii\base\InvalidConfigException | |
throws | Throwable |
Renders widget items.
public string renderItems ( ) | ||
throws | \yii\base\InvalidConfigException|\Throwable |
---|
Renders the widget.
public string run ( ) | ||
throws | \yii\base\InvalidConfigException|\Throwable |
---|