控制器 BaseController 的 behaviors 定义如下
public function behaviors()
{
return [
'visit' => [
'class' => VisitBehavior::className(),
]
];
}
VisitBehavior 里有一个 beforeAction 方法,用来做一些权限认证的事情,控制器 BaseController 里也有一个 beforeAction 方法,结果发现 VisitBehavior 里的 beforeAction 方法没有执行,很神奇,打印东西也不执行,后来发现,是因为 BaseController 的 beforeAction 方法少些了一行代码
if (!parent::beforeAction($action)) {
return false;
}
记录一下踩过的坑。