Yii2 Kartik-V SideNav小部件传递url方法
如何在kartik v sidenav小部件中传递url方法Yii2 Kartik-V SideNav小部件传递url方法,url,navigation,widget,yii2,Url,Navigation,Widget,Yii2,如何在kartik v sidenav小部件中传递url方法 echo SideNav::widget([ 'type' => $type, 'encodeLabels' => false, 'heading' => $heading, 'items' => [ Yii::$app->user->isGuest ?
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
在这个小部件中,我们在哪里传递数据方法?我也使用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'])],
我也遇到了同样的问题,并将
模板
用于SideNav小部件。我被这样的回答所鼓舞
您的代码如下所示:
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>' ]
],
]);
echo SideNav::widget([
'type'=>$type'encodeLabels'=>false,
“标题”=>$heading,
'项目'=>[
Yii::$app->user->isGuest?
['label'=>'LOGIN','url'=>'','active'=>($item=='LOGIN'):
['label'=>'注销','icon'=>'注销','url'=>url::to(['/site/LOGOUT']),'template'=>'']
],
]);
我添加了一个图标作为一个额外的例子。注销方法需要post方法,我可以使用$url=Html::a(“注销”、['site/LOGOUT']、['data-method'=>'post']);但是如何将该url放在上面的小部件中呢