颜色
- 颜色 2017-05-03 已签到连续签到2天,获得了10个金钱
- 颜色 2017-05-02 已签到连续签到1天,获得了5个金钱
- 颜色 2017-04-28 已签到连续签到2天,获得了10个金钱
- 颜色 赞了回答
isValid是yii\base\ActionEvent里面的一个属性,用来控action是否继续执行的,如果这个isValid为false,则不往下执行,
一般问题出在,behaviors这个方法里面,所以好好检查你的behaviors方法里面的验证,isValid的一般会在这个方法里面赋值;
源码参考:yii\base\ActionFilter(一般controller里面的behaviors类会继承这个类,并且实现beforeAction(),这个方法,由源码可以知道,当具体某个behaviors类的beforeAction()返回值为false的话,那么isValid会被赋值false,那么action就不会执行)
public function beforeFilter($event) { if (!$this->isActive($event->action)) { return; } $event->isValid = $this->beforeAction($event->action); if ($event->isValid) { // call afterFilter only if beforeFilter succeeds // beforeFilter and afterFilter should be properly nested $this->owner->on(Controller::EVENT_AFTER_ACTION, [$this, 'afterFilter'], null, false); } else { $event->handled = true; } }
总结一下,就是查看behaviors里面的每个类的beforeAction方法,看看哪个类的这个方法返回值为false,那么就是问题的所在
- 颜色 提出了问题beforeAction返回false的问题
这是广告吗
- 颜色 发表了说说滴,打卡
- 颜色 2017-04-27 已签到连续签到1天,获得了5个金钱