如何在kartik v sidenav小部件中传递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']],
],
]);我收到错误,因为注销需要方法post,我们该在哪里传递此小部件中的数据方法
发布于 2015-05-06 23:57:04
我还使用了kartk v sidenav小部件,这是我的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'])],发布于 2017-04-28 20:05:30
我也遇到了同样的问题,并将template option用于SideNav小部件。我受到了this的启发,所以回答。
您的代码将如下所示:
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>' ]
],
]);我添加了一个图标作为一个额外的例子。
https://stackoverflow.com/questions/30070173
复制相似问题