Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii语言控制使用行为如何防止表单重新提交对话框_Php_Session_Post_Yii_Lang - Fatal编程技术网

Php Yii语言控制使用行为如何防止表单重新提交对话框

Php Yii语言控制使用行为如何防止表单重新提交对话框,php,session,post,yii,lang,Php,Session,Post,Yii,Lang,我用这个教程来改变语言。但我遇到了一个问题,$_Post['lang']变量没有被重置,每次我尝试刷新页面时,它都会给我一个表单重新提交对话框,我不希望出现这个对话框。但我不知道在哪里以及如何使用重定向,因为它在Behaiour类中不起作用。如何防止此表单重新提交 编辑:我发现了一个丑陋的解决方案,将此代码放在我拥有的每个视图文件中 <?php $this->renderPartial('//lang/_refresh', array()) ?> 但它需要大量重复相同的代码,

我用这个教程来改变语言。但我遇到了一个问题,$_Post['lang']变量没有被重置,每次我尝试刷新页面时,它都会给我一个表单重新提交对话框,我不希望出现这个对话框。但我不知道在哪里以及如何使用重定向,因为它在Behaiour类中不起作用。如何防止此表单重新提交

编辑:我发现了一个丑陋的解决方案,将此代码放在我拥有的每个视图文件中

<?php
$this->renderPartial('//lang/_refresh', array())
?>

但它需要大量重复相同的代码,我相信有更好的解决方案可能是将刷新功能放在正确的位置。

找到了一个解决方案,您只需向组件/控制器添加一个beforeAction,因为所有添加的控制器都扩展了它。问题是我不知道。这是一个可以工作的函数,这样我就不必重写代码了

protected function beforeAction()
    {
        if (isset($_POST['lang'])) {
            $this->refresh();
        }
        return true;
    }