YII2 KARTIK-V SIDENAV小部件通行证法



我们如何通过kartik v sidenav widget

传递URL方法
      echo SideNav::widget([ 
           'type' => $type, 'encodeLabels' => false,
           'heading' => $heading,
           'items' => [
                 Yii::$app->user->isGuest ?
                            ['label' => 'LOGIN',  'url' => '', 'active' => ($item == 'login')] :
                            ['label' => 'LOGOUT', 'url' => 'site/logout', 'linkOptions' =>  ['data-method' => 'post']],
                    ],
                ]);

我会出现错误,因为注销需求方法帖子我们在此窗口小部件中的数据方法

我还使用kartk v sidenav widtet,这是我的sitecontroller

class SiteController extends Controller
{
    /**
     * @inheritdoc
     */
    public function behaviors()
    {
        return [
            'access' => [
                .......
            ],
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'logout' => ['post'],
                ],
            ],
        ];
    }

    public function actionLogout()
    {
        Yii::$app->user->logout();
        return $this->goHome();
    }
}

在锡德纳夫(Sidenav)中,我只是有这个

['label' => 'logout',  'url'=>Url::to(['/site/logout'])],

i有相同的问题,并为sidenav小部件使用了template选项。我受到这个答案的启发。

您的代码看起来像这样:

echo SideNav::widget([ 
       'type' => $type, 'encodeLabels' => false,
       'heading' => $heading,
       'items' => [
             Yii::$app->user->isGuest ?
                        ['label' => 'LOGIN',  'url' => '', 'active' => ($item == 'login')] :
                        ['label' => 'LOGOUT', 'icon' => 'log-out', 'url'=>Url::to(['/site/logout']), 'template' => '<a href="{url}" data-method="post">{icon}{label}</a>' ]
                ],
            ]);

我添加了一个图标作为一个额外的示例。

相关内容

  • 没有找到相关文章

最新更新