Страница 5 из 5

Re: Yii2-user

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

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

'components'=>[
		//........
		'view' => [
			'theme' => [
				'pathMap' => [
					'@dektrium/user/views' => '@frontend/views/user',
				],
			],
		],
		//..........
]
Переопределите нужные формы и сложите их в @frontend/views/user

Re: Yii2-user

Добавлено: 2017.12.26, 00:46
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?

Re: Yii2-user

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