YII2:如何在菜单项中创建链接/网址以指向外部网页而不是我的应用程序的操作或视图

时间:2015-10-09 06:23:17

标签: php menu widget yii2

我正在使用YII2菜单小工具,但没有找到在类创建的链接上添加类,目标等属性选项的解决方案。

我的代码如下:

echo Menu::widget(
[
    'options' => [
        'class' => 'sidebar-menu'
    ],

    'items' => [

        [
            'label' => Yii::t('backend', 'Admin'),
            'url' => Yii::$app->homeUrl,
            'icon' => 'fa-list-alt',
            'options' => [
                'class' => 'treeview',
            ],
            'items' => [
                [
                    'label' => Yii::t('backend', 'External link'),
                    'url' => 'http://google.com',
                    'icon' => 'fa-list-alt',
                    'options' => [
                    'target' => '_blank',
                    ],
                ],
            ]
        ],                

    ]
]
 );

未在生成的链接上添加选项目标。

4 个答案:

答案 0 :(得分:8)

通过模板设置添加如下目标。您在代码中设置的选项是li元素的Html选项,而不是链接选项。

'items' => [
    [
       'label' => Yii::t('backend', 'External link'),
       'url' => 'http://google.com',
       'icon' => 'fa-list-alt',
       'template'=> '<a href="{url}" target="_blank">{label}</a>',
    ],
]

答案 1 :(得分:3)

上面的建议似乎不起作用(在我的情况下),另一种解决方案是:

'linkOptions' => ['target' => '_blank']

例如

[
    'url' => \Yii::$app->user->identity->getBlogLink(),
    'linkOptions' => ['target' => '_blank']  ,
    'label' => \Yii::t('app', 'Blog')
]

答案 2 :(得分:1)

如果您想在菜单中保留图标:

'template'=> '<a href="{url}" target="_blank">{icon}{label}</a>'

关于班级,你必须在选项键中指定它:

[
    'label' => 'Debug', 
    'icon' => 'fa fa-dashboard', 
    'url' => ['/debug'],
    'options' => ['class' => 'special'],
    'template'=> '<a href="{url}" target="_blank">{icon}{label}</a>',
],

给出以下菜单:

<li class="special">
    <a target="_blank" href="your_site_url_here/index.php?r=debug">
        <i class="fa fa-dashboard"></i>
        <span>Debug</span>
    </a>
</li>

答案 3 :(得分:-1)

您可以添加任何网址。例如,

echo Menu::widget([
    'items' => [
        ['label' => 'Home', 'url' => ['http://www.google.com']],
        ['label' => 'About', 'url' => ['site/about']],
     ['label' => 'Contact', 'url' => ['site/contact']],
    ],
    'options' => [
                    'class' => 'navbar-nav nav',
                    'id'=>'navbar-id',
                    'style'=>'font-size: 14px;',
                    'data-tag'=>'yii2-menu',
                ],
]);