2014-12-07 62 views
1

我使用dektrium用戶註冊表單。 註冊鏈接生成domain.com/user/register鏈接 但它不是基本的用戶模型,該模塊位於vendor/dektrium文件夾內。 現在在基本控制器文件夾中我有UsersController與視圖操作。 並完成註冊後,我想啓動UsersController的查看操作來查看用戶頁面。yii2從自定義模塊重定向到基本控制器

這是註冊模塊代碼

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。 但可惜的網址是通過以下方式

domain.com/user/users/username 

我怎樣才能解決這個問題,並直接用戶domain.com/users/username頁成形?

回答

2

在用戶重定向前添加額外的/前面的內容。它應該是

return $this->redirect(array('/users/'.$model->username)); 

還是應該實際創建網址的正確方法,這將是做到這一點的最好辦法,但我不知道你有你的規則設置方式,所以我不能幫你那裏。我只是猜測這裏,但它應該是:

return $this->redirect(array('users/view, 'username' => $model->username)); 

這樣你正在使用您的網址經理,不僅僅是硬編碼的URL。將來,如果您決定更改鏈接,它將變得更加簡單(只需替換配置中的url行),而不是通過文件進行更改。

+0

完美的作品,謝謝! – David 2014-12-08 04:53:05

相關問題