Yii1 - 在之前的操作中清理GET参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii1 - 在之前的操作中清理GET参数相关的知识,希望对你有一定的参考价值。

我试图找到是否可以在控制器中使用beforeAction来访问注入的参数。

例如,控制器中的每个操作都接受我需要清理的类型参数:

public function actionGetCustomPaymentsChunk($type) {

        $type = TextUtil::sanitizeString($type);

        // Get filter data
        $filter = FilterHelper::getFilterData();
        // Initialize components
        $totalCostPayableComponent = new TotalCostPayableComponent($filter);
        // Get chunk data
        $data = $totalCostPayableComponent->getCustomPaymentChunk($type);

        // Return content to client side
        $this->renderPartial('/partials/_payable_cost_chunk', array(
            'data'        => $data,
            'route'       => 'totalCostPayable/getCustomPaymentsGrid',
            'type'        => $type,
            'paymentType' => 'Custom',
        ));
    }
}

这可能吗(我试图避免重复)?

答案

你应该能够,你尝试了什么?

假设$type是通过GET传递的,你可以在beforeAction中修改它,修改后的值将应用于目标动作,请求

http://myhost.com/route/test?type=something

在这个控制器的任何动作中使用下面的$type = "foo"

protected function beforeAction($action)
{
    if (isset($_GET['type'])) {
        $_GET['type'] = 'foo';
    }
    ...
    return parent::beforeAction($action);
}

public function actionTest($type)
{
   # $type === 'foo'
   ...
}

更改beforeAction中的操作以满足您的任何要求。

以上是关于Yii1 - 在之前的操作中清理GET参数的主要内容,如果未能解决你的问题,请参考以下文章

在任何控制器的任何操作之前执行我的代码

Yii2与Yii1的模块中Layout使用区别

以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?

如何在 Rails 中清理 sql 片段

vscode 删除注释代码 有没有类似插件 清理所有注释?

Android阻止恢复活动