无论如何从Yii2中的前一个过滤器获取变量?

时间:2018-01-02 13:18:21

标签: filter yii yii2 middleware

在Yii2.0中,我想从前一个过滤器中获取一个值,以避免在每个过滤器中进行相同的查询。 无论如何要做到吗?

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

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

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

1 个答案:

答案 0 :(得分:0)

虽然您将耦合您的行为 - 您可以通过附加到

的组件访问任何行为
\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