ขอวิธีการแก้ปัญหาการ Logout (yii Framwork2)

wave
deelertSR
2,925
สังคมนักพัฒนาระบบ (Community)
ขอวิธีการแก้ปัญหาการ Logout (yii Framwork2)

ขอวิธีการแก้ปัญหาการ Logout ของการใช้ theme AdminLTE พอคลิกคำว่า logout แล้วระบบแจ้ง Method Not Allowed (#405) ดังภาพ 

ควรแก้อย่างไรดีคับ

692d3b0ba7c6a23101f5e19c616d20f8.md.png

<?= dmstr\widgets\Menu::widget(
            [
                'options' => ['class' => 'sidebar-menu'],
                'items' => [
                    ['label' => 'Menu Yii2', 'options' => ['class' => 'header']],
                    ['label' => 'Gii', 'icon' => 'fa fa-file-code-o', 'url' => ['/gii']],
                    ['label' => 'Debug', 'icon' => 'fa fa-dashboard', 'url' => ['/debug']],
                  
                    Yii::$app->user->isGuest ?
['label' => 'Sign in', 'url' => ['site/login']] :
['label' => 'Account(' . Yii::$app->user->identity->username . ')', 'items'=>[
    ['label' => 'Profile', 'url' => ['']],
    ['label' => 'Account', 'url' => ['']],
    ['label' => 'Logout', 'url' => ['site/logout'],'linkOptions' => ['data-method' => 'post']],
]],
['label' => 'Register', 'url' => ['site/signup'], 'visible' => Yii::$app->user->isGuest],
    ],
            ]
        ) ?>

 

2 ความคิดเห็น

  • มานพ กองอุ่น

  • Weanich Sanchol

ลองตรวจสอบตรง data-method post ว่าตรงกับ action logout ว่าเป็น post หรือเปล่า บางทีถ้าพิมพ์ url site%2Flogout เองมันจะใช้ get แทน post ทำให้เกิด error 405 ขึ้น ไม่งั้นลองเช็ค vertFilter ใน controller อีกทีหนึ่ง

สวัสดีครับ ลองวิธีนี้ดูนะครับผมใช้อยู่

<?php if (Yii::$app->user->isGuest) { ?>
                    <?= Html::a('เข้าสู่ระบบ', ['/site/login']) ?>
                <?php } else { ?>
                    <?=Yii::$app->user->identity->realname ?> |
                    <?=Html::a('<i class="fa fa-sign-out"></i> ออกจากระบบ ('.Yii::$app->user->identity->username.')', ['/site/logout'],[
                        'data' => [
                            'method' => 'post',
                        ],
                        'class' => 'btn btn-danger btn-xs'
                    ])?>
                <?php } ?>