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