Redirect yii2从自定义模块重定向到基本控制器
我使用dektrium用户注册表。 注册链接生成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
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行),并且不会进入文件来更改它