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