Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
所有Yii2控制器不允许未登录的操作,或者来宾必须登录_Yii2 - Fatal编程技术网

所有Yii2控制器不允许未登录的操作,或者来宾必须登录

所有Yii2控制器不允许未登录的操作,或者来宾必须登录,yii2,Yii2,我正在使用Yii2高级应用程序,我是Yii2的新手,所以如何制作 所有yii2控制器不允许未登录的操作,或者来宾必须我登录 我的意思是,如果用户未登录,控制器无法在未登录的情况下打开,因此在登录页面中重定向这不是一个控制器我需要多个控制器使用RBAC Manager for Yii 2您可以轻松管理用户的授权。 .使用RBAC Manager for Yii 2,您可以轻松管理用户的授权。 .您可以简单地为此创建一个超级控制器: class Controller extends \yii\web

我正在使用Yii2高级应用程序,我是Yii2的新手,所以如何制作

所有yii2控制器不允许未登录的操作,或者来宾必须我登录


我的意思是,如果用户未登录,控制器无法在未登录的情况下打开,因此在登录页面中重定向这不是一个控制器我需要多个控制器

使用RBAC Manager for Yii 2您可以轻松管理用户的授权。
.

使用RBAC Manager for Yii 2,您可以轻松管理用户的授权。
.

您可以简单地为此创建一个超级控制器:

class Controller extends \yii\web\Controller
{
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'rules' => [
                    [
                        'allow' => false,
                        'roles' => ['?'],
                    ],
                ],
            ],
        ];
    }
}
当然,你所有的控制器都应该扩展这个


阅读更多信息。

您只需为此创建一个超级控制器即可:

class Controller extends \yii\web\Controller
{
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'rules' => [
                    [
                        'allow' => false,
                        'roles' => ['?'],
                    ],
                ],
            ],
        ];
    }
}
当然,你所有的控制器都应该扩展这个


阅读更多信息。

您可以从yii控制器类继承,在该类中您可以重写该方法,并且在该函数中,如果没有活动的登录会话,您可以重定向用户。 确保正在使用的所有其他控制器都继承自新控制器类

编辑:

在SuperController beforeAction中,您可以检查当前调用是否是您的站点/索引,如果不是,则重定向到那里,如:

if($action->controller != "site" && $action->id != "index" ) {
  $this->goHome();
}
确保goHome()将您带到您的站点/索引

您可以将Site actionIndex()方法拆分为已验证或未验证的部分,如:

public function actionIndex() {
    if(Yii::$app->user->isGuest) {
        return $this->redirect(Url::toRoute('site/login'));
    }
    else {
        ...
    }
}

希望这有帮助。

您可以从yii控制器类继承,在该类中可以重写该方法,并且在该函数中,如果没有活动的登录会话,您可以重定向用户。 确保正在使用的所有其他控制器都继承自新控制器类

编辑:

在SuperController beforeAction中,您可以检查当前调用是否是您的站点/索引,如果不是,则重定向到那里,如:

if($action->controller != "site" && $action->id != "index" ) {
  $this->goHome();
}
确保goHome()将您带到您的站点/索引

您可以将Site actionIndex()方法拆分为已验证或未验证的部分,如:

public function actionIndex() {
    if(Yii::$app->user->isGuest) {
        return $this->redirect(Url::toRoute('site/login'));
    }
    else {
        ...
    }
}

希望这能有所帮助。

您需要在common/main.php的组件部分之后添加以下代码

'as beforeRequest' => [  //if guest user access site so, redirect to login page.
        'class' => 'yii\filters\AccessControl',
        'rules' => [
            [
                'actions' => ['login', 'error'],
                'allow' => true,
            ],
            [
                'allow' => true,
                'roles' => ['@'],
            ],
        ],
    ],

在组件部分之后,您需要在common/main.php中添加以下代码

'as beforeRequest' => [  //if guest user access site so, redirect to login page.
        'class' => 'yii\filters\AccessControl',
        'rules' => [
            [
                'actions' => ['login', 'error'],
                'allow' => true,
            ],
            [
                'allow' => true,
                'roles' => ['@'],
            ],
        ],
    ],

bro我是超级控制器,像SuperController.php,使用beforeAction()方法,但如何重定向sitecontroller登录方法我将尝试它:Yii:$app->runaction('sitecontroller/Login');但不工作Bro我是超级控制器,像SuperController.php和make beforeAction()方法,但如何重定向sitecontroller登录方法我将尝试它Yii::$app->runaction('sitecontroller/Login');但不起作用哇谢谢你vijay bhai你是yii2中的摇滚乐:)我想你可能会在网上得到一个readyment小部件来查看这个。滚动分页的概念你知道,就像我们向下滚动时自动加载更多的产品或类别??如果是,那么如何在yii2中使用??这将帮助你解决这个问题,这真的很有帮助哇谢谢你vijay bhai你是yii2中的摇滚乐:)我想你可能会在线获得一个ReadymentWidget来查看它。滚动分页的概念你知道,就像我们向下滚动时自动加载更多产品或类别一样??如果是,那么如何在yii2中使用??这将帮助你解决问题,它真的很有帮助