首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii2禁用amnah/yii2 2的用户注册-用户

Yii2禁用amnah/yii2 2的用户注册-用户
EN

Stack Overflow用户
提问于 2018-05-22 09:04:09
回答 2查看 423关注 0票数 0

我正在我的Yii2应用程序中使用用户模块Yii2。我需要禁用用户模块的一些操作。

例如,如何禁用用户注册(/ user /寄存器)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-22 20:19:02

不幸的是,您使用的用户模块没有任何选项可以通过像dektrium/yii2-user这样的配置禁用用户注册。

您需要创建一个控制器并扩展DefaultController.php,并覆盖下面的操作。

代码语言:javascript
复制
<?php

namespace app\controllers;
use amnah\yii2\user\controllers\DefaultController as BaseDefault;

class DefaultController extends BaseDefault{
    public function actionRegister()
    {
        return $this->redirect(["/user/login"]);
    }
}

不要忘记首先映射控制器以覆盖操作

代码语言:javascript
复制
'modules' => [
    'user' => [
        'class' => 'app\modules\MyModule',
        'controllerMap' => [
            'default' => 'app\controllers\DefaultController',
        ],
    ],
],
票数 3
EN

Stack Overflow用户

发布于 2018-05-26 19:44:27

除了@Muhammad答案--替换单个控制器在一些简单的情况下可能有效,但通常处理这种情况的唯一明智方法(从大模块中删除核心功能)是分叉包,并在源代码中直接进行必要的更改。

即使您覆盖注册操作并重定向到登录页面,您仍可能在应用程序中有多个令人困惑的“单击此处注册”链接。更新包可能会破坏您的解决方案,并使注册成为可能(例如,通过更改操作名称或引入不同的注册方式)。

最好的解决方案是帮助模块包和添加设置来禁用注册。然后您的用例将得到官方支持-没有风险升级将再次添加此功能,您将不会浪费时间来维护您的叉子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50463768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档