[yii2] 实现所有action方法之前执行一段代码或者方法
生活随笔
收集整理的這篇文章主要介紹了
[yii2] 实现所有action方法之前执行一段代码或者方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我做的是在執(zhí)行任何方法之前,驗(yàn)證用戶登陸狀態(tài)!
其實(shí)就是在controller中寫(xiě)beforeaction()方法,
然后我的方案就是做一個(gè)基類,然后讓你所有控制器繼承你的基類,
如果控制器的基類用__constuct()方法做一些初始化的工作(比如初始化模板引擎),如果你在控制器里實(shí)現(xiàn)了__construct,你還需要在__construct里調(diào)用parent::__construct()就太麻煩了。
然后在此基類中寫(xiě)入方法beforeAction()或者init(),
在YII2里這兩個(gè)方法自動(dòng)就執(zhí)行啦!
別忘了最后return true;
class BaseController extends Controller{// 白名單
?? ?public ?? ?? $allowAllAction = [
?? ??? ??? ?// 登陸控制器的白名單
?? ??? ??? ?'seller/login/login',
?? ?];
/*** 登錄統(tǒng)一驗(yàn)證 (每次動(dòng)作先執(zhí)行本方法)*/public function beforeAction( $action ){// 檢驗(yàn)登陸狀態(tài)合法性$is_login = $this->checkSellerLoginStatus();if( in_array( $action->getUniqueId(), $this->allowAllAction ) ){return true;}if( empty($_COOKIE['name']) ){
// 非法跳轉(zhuǎn)$this->redirect( UrlService::buildSellerUrl( '/login/login' ) );return false;}return true;}
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/lipcblog/p/7217654.html
總結(jié)
以上是生活随笔為你收集整理的[yii2] 实现所有action方法之前执行一段代码或者方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 透明(颜色)渐变背景(颜色透明背景),兼
- 下一篇: 学习进度条11