Ошибка, появилась после того, как переделал logout, заменив ссылку, картинкой.
Контроллер
public function actionLogout()
{
Yii::$app->user->logout();
return $this->goHome();
}
Форма
<div class="wrap">
<?php
$status = Yii::$app->user->identity->status;
$ava = Yii::$app->user->identity->ava;
if($ava==''){$ava='/images/defaulte.jpg';}
NavBar::begin([
'brandLabel' => 'YII 2',
'brandUrl' => 'https://github.com/yiisoft/yii2/tree/master/docs/guide-ru',
'options' => [
'class' => 'navbar-inverse navbar-fixed-top',
],
]);
$menuItems = [
['label' => 'Главная', 'url' => ['/site/index']],
['label' => 'Обратная связь', 'url' => ['/site/contact']],
];
if (Yii::$app->user->isGuest) {
$menuItems[] = ['label' => 'Регистрация', 'url' => ['/site/signup']];
$menuItems[] = ['label' => 'Авторизация', 'url' => ['/site/login']];
}
else {
if($status == 'admin'){
$menuItems[] = ['label' => 'Админка', 'url' => ['/site/admin']];
}
$menuItems[] = ['label' => 'Личный кабинет', 'url' => ['/site/account']];
$menuItems[] = '<li>'
. Html::beginForm(['/site/logout'], 'post')
."<img class='profile_img' src='$baseUrl$ava'>"
. '<div class="user_name">' .Yii::$app->user->identity->username .'</div>'
. Html::submitButton(
"<img class='img_logout' src='$baseUrl/images/exit.png'>",
['class' => 'btn btn-link logout',
'style' => 'background-image:url('.$baseUrl .'/images/exit.png' .')']
)
. Html::endForm()
. '</li>';
$menuItems[] = '<li>'
. Html::beginForm(['/site/edit'], 'post')
. Html::submitButton(
"<img class='img_edit' src='$baseUrl/images/edit_profile.png'>",
['class' => 'btn btn-link logout']
)
. Html::endForm()
. '</li>';
}
echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],
'items' => $menuItems,
]);
NavBar::end();
?>
Некоторое время всё работало нормально, потом стала вылетать ошибка при логауте и при переходе на редактирование профиля. На просторах рунета нашёл 2 ответа:
1) Нужно передавать токен.(Непонятно зачем его передавать при выходе их профиля)
2) Нужно Html::beginForm(['/site/logout'], 'post') писать в скобках квадратных, что у меня и было изначально.
Возможно есть другое объяснения этой ошибке?