谁一开始就是大神?

beforeAction返回false的问题

项目里批量删除时action没有运行,单个删除就没问题,看代码是controller类里的beforeAction函数返回false导致没有继续运行,找下去发现是isValid的属性被改变,但我找不到在哪里改变的,为什么会这样

isValid是yii\base\ActionEvent里面的一个属性,用来控action是否继续执行的,如果这个isValid为false,则不往下执行,
一般问题出在,behaviors这个方法里面,所以好好检查你的behaviors方法里面的验证,isValid的一般会在这个方法里面赋值;
源码参考:yii\base\ActionFilter(一般controller里面的behaviors类会继承这个类,并且实现beforeAction(),这个方法,由源码可以知道,当具体某个behaviors类的beforeAction()返回值为false的话,那么isValid会被赋值false,那么action就不会执行)
总结一下,就是查看behaviors里面的每个类的beforeAction方法,看看哪个类的这个方法返回值为false,那么就是问题的所在
循环调用了吧?估计是被浏览器停止掉了

赞(0) 打赏
未经允许不得转载:菜鸟之家 » beforeAction返回false的问题

评论 抢沙发

登录

找回密码

注册