[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; }
}

 

  

转载于:https://www.cnblogs.com/lipcblog/p/7217654.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值