Использование шаблона «базового» приложения, каков правильный способ ввода имени модуля, который отделен от входа в основной сайт?Yii2 - вход модуля в базовый шаблон приложения
Например, у меня есть модуль «admin», для которого требуется логин. Мне также нужен логин для входа на главный сайт.
Я сделал следующее:
- Создан
admin
модуль, использующийgii
инструмент - Создан
models
папку в папкеadmin
модуля - Размещенные
LoginForm.php
иUser.php
в этой папке (также обновленные объявления пространств имен в эти файлы) - Добавлено
AccessControl
поведение и логин/выход из системы наmodules\admin\controllers\DefaultController.php
Обновлено
config\web.php
следующим образом:'modules' => [ 'admin' => [ 'class' => 'app\modules\admin\Module', ], ],
Обновлено
app\modules\admin\Module.php
следующим образом:public function init() { parent::init(); Yii::$app->set('user', [ 'class' => 'yii\web\User', 'identityClass' => 'app\modules\admin\models\User', 'enableAutoLogin' => true, 'loginUrl' => ['admin/default/login'], ]); Yii::$app->set('session', [ 'class' => 'yii\web\Session', 'name' => '_adminSessionId', ]); }
Проблема, которую я имею, что если я пытаюсь получить доступ к странице администратора, когда я я не вошел в систему, он показывает форму входа (это правильно). Однако при входе в систему он просто перенаправляет меня обратно на главный сайт. Он должен перенаправить меня на страницу администратора, к которой я пытался получить доступ.
В DefaultController.php
, он имеет следующее (код по умолчанию):
if ($model->load(Yii::$app->request->post()) && $model->login())
return $this->goBack();
Что такое правильный способ сделать это, чтобы я мог иметь независимые входы для модуля администрирования и для основного сайта? Я не хочу использовать «расширенный шаблон приложения», поскольку это добавляет некоторую ненужную сложность.
Переключение к расширенному применению, это было сделано для этого, и это довольно легко превратить простое приложение на продвинутый. Вы поблагодарите хороших людей в Yii позже. –