2019-02-21 09:11:11 1420次浏览 2条回答 0 悬赏 15 金钱

新人,刚刚开始学PHP,使用yii框架做项目时,在做项目模仿advanced登录注册页面时,发现在后台注册页面登录以后才能显示。如何在后台实现不用登录就显示注册页面呢?
也可以说是,在后台管理时登录以后可以增加新管理员,并授予权限,但是我想做一个后台在不需要登录时就可以注册管理员用户,默认给予低权限

最佳答案

  • 卐槑卍 发布于 2019-02-21 19:18 举报

    修改后端文件夹 backend 中的 controllers 文件夹中的对应的控制器(里面包含注册方法),把其中 behaviors()方法修改一下,在 'roles' => ['@'] 的数组中,把对应的控制器注册方法删除,就不需要登录了。

    6 条回复
    回复于 2019-02-22 13:46 回复

    我按照授权里面的behavior方法写以后,'roles' => ['@']里面只有一个logout,'roles' => ['?']里面是login和signup,然后测试还是无法跳转到注册页面

    回复于 2019-02-22 18:20 回复

    假如你注册的的方法为actionRegister(),你在'roles' => ['?']数组,修改如下: 'actions' => [’login‘,’signup’,'register']

    回复于 2019-02-26 22:41 回复

    方法写的是signup啊o(╥﹏╥)o哭泣

    回复于 2019-02-27 00:20 回复

    那就奇怪了,贴个代码看看。。我这里修改了,就可以。。

    回复于 2019-02-27 09:40 回复

    public function behaviors()

    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'only' => ['login', 'logout', 'signup'],
                'rules' => [
                    [
                        'allow' => true,
                        'actions' => ['login', 'signup'],
                        'roles' => ['?'],
                    ],
                    [
                        'allow' => true,
                        'actions' => ['logout'],
                        'roles' => ['@'],
                    ],
                ],
            ],
        ];
    }
    

    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();
                }
            }
        }
    
        return $this->render('signup', [
            'model' => $model,
        ]);
    }
    
    回复于 2019-02-27 09:40 回复

    public function behaviors()

    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'only' => ['login', 'logout', 'signup'],
                'rules' => [
                    [
                        'allow' => true,
                        'actions' => ['login', 'signup'],
                        'roles' => ['?'],
                    ],
                    [
                        'allow' => true,
                        'actions' => ['logout'],
                        'roles' => ['@'],
                    ],
                ],
            ],
        ];
    }
    

    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();
                }
            }
        }
    
        return $this->render('signup', [
            'model' => $model,
        ]);
    }
    
您需要登录后才可以回答。登录 | 立即注册
林深不见你
见习主管

林深不见你 昆明

注册时间:2019-01-24
最后登录:2019-07-29
在线时长:3小时50分
  • 粉丝1
  • 金钱335
  • 威望0
  • 积分365

热门问题