颜色

颜色

这家伙有点懒,还没写个性签名!

  • 财富值530
  • 威望值0
  • 总积分610

个人信息

  • 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个金钱
主管 等级规则
610/1000
资料完整度
10/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

1

Ta的访客

2