2014-12-07 3 views
1

dektrium 사용자 등록 양식을 사용합니다. 등록 링크는 domain.com/user/register 링크 을 생성하지만 기본 사용자 모델은 아니며이 모듈은 vendor/dektrium 폴더 안에 있습니다. 이제 기본 컨트롤러 폴더에 View 액션이있는 UsersController가 있습니다. 그리고 등록을 마친 후 사용자 페이지를보기 위해 UsersController의보기 동작을 시작하고 싶습니다.yii2 사용자 지정 모듈에서 기본 컨트롤러로 리디렉션

이것은 내가 거기 domain.com/users/username에서 그것의 자신의 페이지로 사용자를 취할 것으로 예상되는이 코드

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

를 넣었습니다 볼 수 있듯이 등록 모듈 코드

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 
     ]); 
    } 

입니다. 그러나이 unfortunatelly URL이

domain.com/user/users/username 

가 어떻게 domain.com/users/username 페이지에이 문제와 사용자가 직접 문제를 해결할 수 있습니다 다음과 같은 방법으로 형성된다?

답변

2

사용자 리디렉션의 추가/앞에 추가하십시오. 그것은

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

해야 또는 그래서 내가 거기에 당신을 도울 수있는 당신이 당신의 규칙이 설정 한 방법을 당신은 실제로 URL에게 적절한 방법을 작성해야하는이 작업을 수행하는 가장 좋은 방법이 될 것입니다,하지만 나도 몰라 . 난 그냥 여기 추측하고 있지만되어야합니다 :

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

를 그냥 URL을 하드 코딩하지, 당신의 URL 관리자를 사용하는이 방법. 장래에 링크를 변경하기로 결정했다면, 설정에서 URL 줄 바꾸기가 훨씬 쉬워지고 파일을 변경하지 않아도됩니다.

+0

완벽하게 작동합니다. 감사합니다. – David

관련 문제