2017-09-18 19:52:05 1850次浏览 4条回答 0 悬赏 10 金钱

yii如何防止在没有登录的情况下,随意跳转到后台的页面;求大佬详细解说;

最佳答案

  • pmd 发布于 2017-09-19 08:36 举报

    `<?php
    namespace backend\controllers;
    use yii\web\Controller;
    use Yii;
    class AdminController extends Controller {

    public function beforeAction($action){
    	if(!Yii::$app->user->id){
    		$this->redirect(['/site/login'])->send();
    	}else{
    		return true;
    	}
    }
    
    
    

    }
    ?>`

    5 条回复
    回复于 2017-09-19 09:08 回复

    你这个是同模块跳转的吧,想知道怎么从后台跳转到前台呢

    回复于 2017-09-19 09:12 回复

    大佬说 获取不到id的值 <?php

    namespace app\mudule\admin\controllers;
    use Yii;
    use yii\web\Controller;
    use yii\rest\ActiveController;
    use yii\db\ActiveRecord;
    class LoginController extends Controller
    {
    // public function __construct(){

     // //操作命名格式 action操作名
      // $actions = parent::actions();
      // $session = Yii::$app->session;
      // $admin_id=$session->get('admin_id');
      // if($admin_id==null){
      // 	$this->redirect(['/default/zz'])->send();
      // Yii::app()->user->setFlash('commentSubmitted ','zz');
      // $this->redirect('default/zz');
      // } 
    public function beforeAction($action){
    if(!Yii::$app->user->admin_id){
    	$this->redirect(['/default/zz'])->send();
    }else{
    	return true;
    }
    

    }

    } 这样不行啊

    回复于 2017-09-19 09:14 回复

    应该是修改前后台的模块

    回复于 2017-09-19 09:35 回复

    我想知道怎么实现啊,具体思路或者例子有吗

    回复于 2017-09-19 10:32 回复

    先分清楚前后台模版就应该可以了吧

  • 回答于 2017-09-18 21:16 举报

    可以在 beforeAction 里面判断

    1 条回复
    回复于 2017-09-19 10:31 回复

    谢谢大佬解决了

  • 回答于 2017-09-19 08:34 举报

    写个基类控制器,模块下的所有控制器都继承这个基类控制器,然后这个基类控制器实现一个beforeAction方法,判断用户是否登录,没有登录就跳转到登录页面

  • 回答于 2017-09-19 09:56 举报

    一般都是在before提前判断是否登录

    1 条回复
    回复于 2017-09-19 10:31 回复

    谢谢大佬,解决了

您需要登录后才可以回答。登录 | 立即注册
style、
试用期

style、

注册时间:2017-09-18
最后登录:2017-11-06
在线时长:0小时41分
  • 粉丝1
  • 金钱30
  • 威望0
  • 积分30

热门问题