zys520
- zys520 赞了回答
赞同楼上说的,但是不建议直接改源码,可以写一个类继承系统的Request类,然后在配置文件里,配置上你自己的Request类
'request' => ['class' => 'xx\xx\YourRequest'], - zys520 赞了回答
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,那么就是问题的所在
- zys520 2017-04-27 已签到连续签到1天,获得了5个金钱
- zys520 2016-12-20 已签到连续签到1天,获得了5个金钱