有没有办法从 Yii2 中的先前过滤器中获取变量?

Is there anyway to get a variable from previous filter in Yii2?

在Yii2.0中,我想从之前的过滤器中获取一个值,以避免在每个过滤器中进行相同的查询。 反正有办法吗?

例如,这是我在控制器中的代码:

public function behaviors() {
    return [
        'filter1' => ['class' => Filter1::className()],
        'filter2' => ['class' => Filter2::className()]
    ];
}

filter1 中,我做了一个 sql 查询,我想在 filter2 中使用这个查询的结果,因为我不想再次进行这个查询。
我该怎么办?
如果我想从我的控制器中的过滤器中获取一个值,我应该怎么做?

虽然你会耦合你的行为 - 你可以通过它附加到的组件访问任何行为

\Yii::$app->controller->getBehavior('filter1')->yourValue

或来自 filter2 行为:

$this->owner->getBehaviour('filter1')->yourValue

http://www.yiiframework.com/doc-2.0/yii-base-behavior.html#$owner-detail