我使用dektrium用户注册表。
注册链接生成domain.com/user/register
链接
但它不是基本用户模型,该模块位于vendor / dektrium文件夹中。
现在在基本控制器文件夹中,我有带有视图操作的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
页?
答案 0 :(得分:2)
在用户重定向前添加额外/。它应该是
return $this->redirect(array('/users/'.$model->username));
或者你应该以正确的方式创建网址,这是最好的方法,但我不知道你的规则设置方式,所以我无法帮助你。我只是猜测,但它应该是:
return $this->redirect(array('users/view, 'username' => $model->username));
通过这种方式,您使用的是网址管理器,而不仅仅是对网址进行硬编码。将来,如果您决定更改链接,将更容易(仅替换配置中的url行),而不是进入文件来更改它。