我们如何通过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>' ]
],
]);
我添加了一个图标作为一个额外的示例。