Проблема со ссылкой для выхода из Yii2

Я использовал эту функцию для ссылки на выход из системы, а не в меню.

этот код, который я использовал:

<?= Html::a('Logout', ['site/logout'], ['data-method' => 'post']) ?>

Показ-

Метод не разрешен. Этот URL-адрес может обрабатывать только следующие методы запроса: POST.

Как я могу решить эту проблему?


person fool-dev    schedule 14.10.2015    source источник


Ответы (1)


Я думаю, что это должно быть:

<?= Html::a('Logout', ['site/logout'], ['data' => ['method' => 'post']]) ?>

См. документацию по методу и детали параметра.

Вы также должны убедиться, что YiiAsset был загружен. Это JS-код, который творит чудеса (ссылки обычно генерируют GET-запросы). По умолчанию, когда вы сгенерировали исходный код с помощью шаблонов проекта Yii, он включается в AppAsset, экземпляр которого, в свою очередь, создается в файле макета (AppAsset::register($this);).

person robsch    schedule 14.10.2015
comment
Привет robsch, еще не решил мою проблему, показывает ту же ошибку. - person fool-dev; 14.10.2015
comment
У вас есть фильтр глаголов в вашем контроллере? - person robsch; 14.10.2015
comment
Нет, в моем контроллере нет фильтра глаголов, но я добавил это: используйте yii\filters\VerbFilter; проблема все еще остается. - person fool-dev; 14.10.2015
comment
Скорее всего отсутствует JS-код, который обрабатывает data-method (YiiAsset не загружен). Эти две конструкции эквивалентны: ['data-method' => 'post'] и ['data' => ['method' => 'post']]. - person Beowulfenator; 16.10.2015
comment
@AlSaba Без какой-либо дополнительной информации, что мы можем сделать? Давай... обнови свой пост и предложи какой-нибудь код или скажи нам, какую ошибку ты получаешь сейчас. - person robsch; 17.10.2015
comment
После долгих поисков вы спасли мой день. Спасибо @robsch - person Sajid anwar; 24.03.2017