Redirect yii2从自定义模块重定向到基本控制器

Redirect yii2从自定义模块重定向到基本控制器,redirect,controller,registration,yii2,Redirect,Controller,Registration,Yii2,我使用dektrium用户注册表。 注册链接生成domain.com/user/register链接 但它不是基本用户模型,该模块位于vendor/dektrium文件夹中。 现在在BaseControllers文件夹中,我有了带有视图操作的UsersController。 完成注册后,我想启动UsersController的查看操作来查看用户页面 这是注册模块代码 public function actionRegister() { if (!$this->mod

我使用dektrium用户注册表。 注册链接生成
domain.com/user/register
链接 但它不是基本用户模型,该模块位于vendor/dektrium文件夹中。 现在在BaseControllers文件夹中,我有了带有视图操作的UsersController。 完成注册后,我想启动UsersController的查看操作来查看用户页面

这是注册模块代码

public function actionRegister()
    {
        if (!$this->module->enableRegistration) {
            throw new NotFoundHttpException;
        }

        $model = $this->module->manager->createRegistrationForm();

        if ($model->load(\Yii::$app->request->post()) && $model->register()) {
            return $this->redirect(array('users/'.$model->username));
        }

        return $this->render('register', [
            'model' => $model
        ]);
    }
正如你所看到的,我把这个代码放在那里了

return $this->redirect(array('users/'.$model->username));
它应该将用户带到自己的页面,网址是
domain.com/users/username
。 但不幸的是,url的形成方式如下

domain.com/user/users/username

如何解决此问题并将用户引导到
domain.com/users/username
页面?

在用户重定向前添加一个额外的/。应该是

return $this->redirect(array('/users/'.$model->username));
或者你应该用正确的方法创建url,这是最好的方法,但是我不知道你是如何设置规则的,所以我不能帮你。我只是在这里猜测,但应该是:

return $this->redirect(array('users/view, 'username' => $model->username));
这样,您就可以使用url管理器,而不仅仅是对url进行硬编码。在将来,如果您决定更改链接,它将更容易(只替换配置中的url行),并且不会进入文件来更改它