继承YII2模型但beforeValidate在update时不生效

由于需要封装一些数据库映射方法,所以我用一个mapper继承了Yii2生成的model
由于update时使用了静态的findOne方法
$o = ConfigMapper::findOne(1);
$o->v = '1112';
$o->save();
这样会导致返回的是model的实例而不是mapper,从而使得编写在mapper中的beforeValidate方法在更新时不会触发
所以我们需要重写findOne方法:
public function getOne($condition)
        {
                $response = new MapperResponse();
                $result = static::findOne($condition);
                return  $response->setResponse2Success($result);
        }
...