Redirect Yii 2如果客人访问网站,则重定向至登录
我需要一些建议,如何使重定向到登录,如果有人没有登录到该网站,他是唯一的客人Redirect Yii 2如果客人访问网站,则重定向至登录,redirect,login,yii2,Redirect,Login,Yii2,我需要一些建议,如何使重定向到登录,如果有人没有登录到该网站,他是唯一的客人 use Yii; use \yii\helpers\Url; if ( Yii::$app->user->isGuest ) return Yii::$app->getResponse()->redirect(array(Url::to(['site/login'],302))); Use可以在操作或视图中使用它,但如果您需要在许多操作中使用它,您可能需要在启动操作之前查看并限制访问
use Yii;
use \yii\helpers\Url;
if ( Yii::$app->user->isGuest )
return Yii::$app->getResponse()->redirect(array(Url::to(['site/login'],302)));
Use可以在操作或视图中使用它,但如果您需要在许多操作中使用它,您可能需要在启动操作之前查看并限制访问有两个选项:
public function beforeAction($action){
if (parent::beforeAction($action)){
if (Yii::$app->user->isGuest){
Yii::$app->user->loginUrl = ['/auth/default/index', 'return' => \Yii::$app->request->url];
return $this->redirect(Yii::$app->user->loginUrl)->send();
}
}}
您还可以创建一个自定义“控制器”类,该类继承\yii\web\Controller,然后让所有需要授权的控制器继承您的自定义控制器 $return_url = empty(Yii::$app->request->get('return'))? \yii\helpers\Url::to(['/admin/default/index']) :Yii::$app->request->get('return');
return $this->redirect($return_url);
使用“访问”部分设置对控制器中各种操作的访问
public function behaviors()
{
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['POST'],
],
],
'access' => [
'class' => \yii\filters\AccessControl::className(),
'only' => ['create', 'update','index'],
'rules' => [
// deny all POST requests
[
'allow' => false,
'verbs' => ['POST']
],
// allow authenticated users
[
'allow' => true,
'roles' => ['@'],
],
// everything else is denied
],
],
];
}
我应该把它放在每个控制器中,或者…?@MaksymSemenykhin我可以这样使用吗
return Yii::$app->getResponse()->重定向(SITE_URL.'login')代码>?为什么要编写getResponse函数?它有什么用?我已经这样写了,但我并没有得到登录页面上的推荐人。