zoukankan      html  css  js  c++  java
  • [yii2] 实现所有action方法之前执行一段代码或者方法

    我做的是在执行任何方法之前,验证用户登陆状态!

    其实就是在controller中写beforeaction()方法,

    然后我的方案就是做一个基类,然后让你所有控制器继承你的基类,

    如果控制器的基类用__constuct()方法做一些初始化的工作(比如初始化模板引擎),如果你在控制器里实现了__construct,你还需要在__construct里调用parent::__construct()就太麻烦了。

    然后在此基类中写入方法beforeAction()或者init(),

    在YII2里这两个方法自动就执行啦!

    别忘了最后return true;

    class BaseController extends Controller{

      // 白名单
        public       $allowAllAction = [
                // 登陆控制器的白名单
                'seller/login/login',
        ];

      /*
    * * 登录统一验证 (每次动作先执行本方法) */ public function beforeAction( $action ) { // 检验登陆状态合法性 $is_login = $this->checkSellerLoginStatus(); if( in_array( $action->getUniqueId(), $this->allowAllAction ) ) { return true; } if( empty($_COOKIE['name']) ) {
      // 非法跳转
    $this->redirect( UrlService::buildSellerUrl( '/login/login' ) ); return false; } return true; }
    }

      

  • 相关阅读:
    tmux 的基本使用
    ffmpeg(1) 基础框架
    VUE页面跳转方式
    nextcloud 中文乱码解决方案
    mysql8 navicat远程链接失败
    prometheus+grafana实现服务监控
    sqlalchemy ————关联表
    Python flask自定义异常信息,返回json格式的异常
    sqlalchemy 查询结果转json个人解决方案
    Linux添加字体
  • 原文地址:https://www.cnblogs.com/lipcblog/p/7217654.html
Copyright © 2011-2022 走看看