Php 使用方法post重定向

Php 使用方法post重定向,php,yii2,Php,Yii2,我的重定向: public function actionLogout() { Yii::$app->user->logout(); $cookies = Yii::$app->response->cookies; $cookies->remove('isBackendLogin'); unset($cookies['isBackendLogin']); if ( !strpos(Url::current(), 'back

我的重定向:

public function actionLogout()
{
    Yii::$app->user->logout();

    $cookies = Yii::$app->response->cookies;
    $cookies->remove('isBackendLogin');
    unset($cookies['isBackendLogin']);

    if ( !strpos(Url::current(), 'backend') )
    {
        //POST Method sent
        return $this->redirect(['backend/user/auth/logout']);
    }
    return $this->goHome();
}
但注销需要post数据方法


有没有办法重定向到此页面?

您可以在注销页面上使用隐藏字段,并在用户点击该页面时使用一些javascript自动提交表单

编辑:
刚看到一个框架的标签。Sagesh为您的框架提供了一个答案。

如果向
url
数组添加参数,则可以通过传递参数

return $this->redirect(['/backend/user/auth/logout', 
                        'key' => 'value',
                        'anotherPostKey' => 'anotherPostValue',
                       ]);

实现这一目标有两种选择

  • 将允许规则从POST更改为访问规则中的GET&POST的注销方法
  • 若要使用POST方法重定向,请呈现一个页面,该页面的表单的POST方法类型和操作设置为“注销页面”。在页面加载时使用javascript调用表单提交

  • dupe:在您的示例中,key和另一个postkey将通过GET方法发送哦,我明白了。Yii2似乎无法使用POST重定向,但如果您想在用户会话中存储数据,则有一个users全局变量。你想要更多的信息吗?是的,请。我的问题是前端和后端有两个单独的会话。如果我在前端注销,我也必须在后端注销。[code]公共函数actionLogout(){Yii::$app->user->logout();$cookies=Yii:$app->response->cookies;$cookies->remove('isBackendLogin');unset($cookies['isBackendLogin']);if(!strpos(Url::current(),'backend'){//重定向此返回值$this->重定向发布(Yii:$app->urlManager->createAbsoluteUrl(['/backend/user/auth/logout'],[]);}返回$this->goHome();}[/code]用此代码编辑您的原始问题,以找到更好的答案:D