Yii2-user

Выкладываем свои наработки
Аватара пользователя
vitaxa_prog
Сообщения: 306
Зарегистрирован: 2011.06.06, 22:44
Откуда: Волноваха

Re: Yii2-user

Сообщение vitaxa_prog »

ddmitrenko писал(а): 2017.08.28, 22:18 Только не понятно как формы в контроллере менять?
Вьюхи? Там же в документации всё расписано.

Код: Выделить всё

'components'=>[
		//........
		'view' => [
			'theme' => [
				'pathMap' => [
					'@dektrium/user/views' => '@frontend/views/user',
				],
			],
		],
		//..........
]
Переопределите нужные формы и сложите их в @frontend/views/user
В принципе ничего нет невозможного.
— Вы думаете?
— Для человека. С интеллектом.
Trend
Сообщения: 6
Зарегистрирован: 2017.09.12, 23:34

Re: Yii2-user

Сообщение Trend »

Всем привет!
Использую модуль Yii2-user. Нужно было сделать так, чтобы при входе неавторизованного пользователя не было никакого меню, а только форма ввода логина и пароля. Для этого сделал следующие вещи.
1. Создал модуль users.

Код: Выделить всё

namespace app\modules\users;

class Module extends \dektrium\user\Module
{
    public $controllerMap = [
        'admin'    => 'dektrium\user\controllers\AdminController',
        'registration' => 'dektrium\user\controllers\RegistrationController',
        'security'     => 'app\modules\users\controllers\SecurityController',// Переопределенный контроллер
        'recovery'     => 'dektrium\user\controllers\RecoveryController',
        'settings'     => 'dektrium\user\controllers\SettingsController',
        'profile'      => 'dektrium\user\controllers\ProfileController',
    ];
}
В котором переопределил контроллер SecurityController на свой

Код: Выделить всё

namespace app\modules\users\controllers;

use dektrium\user\controllers\SecurityController as BaseSecurityController;

class SecurityController extends BaseSecurityController
{
    public function actionLogin()
    {
        $this->layout = 'main-login';
        return parent::actionLogin();
    }
}
В своем модуле переопределил основную вьюху, всю выводить не буду, только покажу проблемный участок.

Код: Выделить всё

        <div class="row">
            <div class="col-xs-12">
                <?= Html::a(
                    Yii::t('user', 'Forgot password?'),
                    ['/user/recovery/request']
                ) ?>
            </div>
        </div>
Как видно, ссылка ведет на '/user/recovery/request', но при нажатии на ссылку попадаю на '/user/forgot', что приводит к 404 ошибке.
Как я понял это происходит по той причине, что у самого модуля прописано

Код: Выделить всё

    public $urlRules = [
        '<id:\d+>'                               => 'profile/show',
        '<action:(login|logout|auth)>'           => 'security/<action>',
        '<action:(register|resend)>'             => 'registration/<action>',
        'confirm/<id:\d+>/<code:[A-Za-z0-9_-]+>' => 'registration/confirm',
        'forgot'                                 => 'recovery/request',// Тут правило которое меняет маршрут
        'recover/<id:\d+>/<code:[A-Za-z0-9_-]+>' => 'recovery/reset',
        'settings/<action:\w+>'                  => 'settings/<action>'
    ];
Теперь вопрос: как правильно исправить эту ситуацию, чтобы не возникала ошибка 404?
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Yii2-user

Сообщение Nex-Otaku »

В модуле ошибки нет, ошибка в ваших настройках. Где-то что-то забыли. У меня по этой ссылке "/user/forgot" нормально открывается страничка восстановления пароля.
Ответить