YII2 Перенаправление на бэкенд после регистрации пользователя с внешнего интерфейса

После установки расширенного шаблона в yii2 я получил регистрацию пользователя на внешнем интерфейсе, но я хочу, чтобы он перенаправлялся на серверную часть после регистрации. Как это можно сделать???

public function actionSignup()
{
    $model = new SignupForm();
    if ($model->load(Yii::$app->request->post())) {
        if ($user = $model->signup()) {
            if (Yii::$app->getUser()->login($user)) {
                return $this->goHome(); // I WANT TO CHANGE THIS TO REDIRECT TO LOCALHOST/MYAPP/BACKEND/WEB
            }
        }
    }

    return $this->render('signup', [
        'model' => $model,
    ]);
}

ОБНОВЛЕНИЕ вот urlmanager

    'urlManager' => [
    'class' => 'yii\web\urlManager',
    'showScriptName' => false,
    ],
    'urlManagerBackend' => [
        'class' => 'yii\web\urlManager',
        'showScriptName' => false,
        'baseUrl' => 'http://localhost/ncddp/backend/web/index.php',
    ],

person beginner    schedule 27.04.2015    source источник


Ответы (1)


Вы можете настроить отдельный компонент urlManager в frontend для backend:

'urlManager' => [
    'class' => 'yii\web\urlManager',
    'enablePrettyUrl' => true,
    'showScriptName' => false,
],
'urlManagerBackend' => [
    'class' => 'yii\web\urlManager',
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'baseUrl' => 'http://admin.site.com',
],

Поместите в раздел components в конфигурации приложения.

Затем вы можете использовать его так:

Yii::$app->urlManagerBackend->createUrl(...);

Использование с перенаправлением:

return $this->redirect(Yii::$app->urlManagerBackend->createUrl(...));

Ссылки по теме:

person arogachev    schedule 27.04.2015
comment
Как использовать этот Yii::$app->urlManagerBackend->createUrl(); в перенаправлении? - person beginner; 27.04.2015
comment
Обновлен ответ с информацией, как это сделать. - person arogachev; 27.04.2015
comment
после установки enablePrettyUrl на true приложение больше не может распознавать http://localhost/ncddp/frontend/web/site/signup, оно возвращает 404 - person beginner; 27.04.2015
comment
Это просто для примера. Удалите его, если он вам не нужен. - person arogachev; 27.04.2015
comment
Мне жаль. Что нужно поместить внутрь createUrl(...)? Я попробовал return $this->redirect(Yii::$app->urlManagerBackend->createUrl('index'));, но URL-адрес переходит на http://localhost/ncddp/frontend/web/index.php?r=index, который равен 404... также все еще во внешнем интерфейсе. - person beginner; 27.04.2015
comment
Я прав с этим return $this->redirect(Yii::$app->urlManagerBackend->createUrl('index')); Я изменил urlManager, но ошибка все та же. URL переходит на http://localhost/ncddp/frontend/web/index.php?r=index после регистрации. Я обновил свой вопрос выше. - person beginner; 27.04.2015
comment
Вам необходимо настроить URL-адрес для бэкэнда на вашем веб-сервере. Вы указали путь, а не URL. - person arogachev; 27.04.2015
comment
Я все больше запутался. Что вы подразумеваете под настройкой URL-адреса для бэкэнда на веб-сервере? Я на локальном хосте. Как я могу это сделать? - person beginner; 27.04.2015
comment
Попробуйте указать 'baseUrl' => 'http://localhost/myapp/backend/web', а затем создать такой URL: Yii::$app->urlManagerBackend->createUrl(['site/index']). - person arogachev; 28.04.2015
comment
return $this->redirect(Yii::$app->urlManagerBackend->createUrl('site')); Все так же. После регистрации браузер перенаправляет сюда http://localhost/ncddp/frontend/web/index.php?r=site - person beginner; 28.04.2015
comment
Давайте продолжим обсуждение в чате. - person arogachev; 28.04.2015
comment
1) 'baseUrl' => 'http://localhost/myapp/backend/web'. Вам нужен URL-адрес для бэкэнда, а не для интерфейса. 2) Yii::$app->urlManagerBackend->createUrl(['site/index']). Пожалуйста, проверьте еще раз все точно, я проверил это, и все работает отлично. - person arogachev; 28.04.2015
comment
Я уже сделал это, но все равно. Я попытался настроить оба менеджера URL-адресов для бэкэнда и внешнего интерфейса, но до сих пор никаких изменений. - person beginner; 29.04.2015
comment
@arogachev, не могли бы вы сказать мне, где разместить этот код менеджера URL? поделитесь, пожалуйста, путем к файлу. - person Goli; 02.11.2018