yii2 перенаправляет с пользовательского модуля на базовый контроллер

Я использую регистрационную форму пользователя 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 страницу?


person David    schedule 07.12.2014    source источник


Ответы (1)


Добавьте дополнительный / перед перенаправлением пользователей. так должно быть

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

Или вы действительно должны создать URL-адрес должным образом, это был бы лучший способ сделать это, но я не знаю, как вы настроили свои правила, поэтому я не могу вам помочь. Я просто предполагаю, но это должно быть:

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

Таким образом, вы используете свой менеджер URL-адресов, а не просто жестко кодируете URL-адрес. В будущем, если вы решите изменить ссылку, это будет намного проще (замените только строку url в вашем конфиге) и не будете лезть в файлы, чтобы изменить ее.

person Mihai P.    schedule 08.12.2014