0

我已经使用高级模板安装了最新版本的 yii2。该网站运行良好。由于某种原因,Gii 生成工具被卡住并且在单击预览按钮后没有按预期反应。它没有显示带有“生成”按钮的新表单,而是显示相同的表单,没有任何关于正在发生的事情的消息。

使用 xdebug 我可以在 DefaultController 的“actionView”方法中看到未设置数组值 $_POST['preview'],即 $_POST 数组中不存在它。我没有更改视图表单中的任何内容,一切看起来都很好。提交按钮的名称为“preview”,表单已提交,但 $_POST 数组未填充提交按钮的值。因此,控制器不会继续进行生成过程的后续步骤。

public function actionView($id)
{
    $generator = $this->loadGenerator($id);
    $params = ['generator' => $generator, 'id' => $id];

    // ###############################################################################
    // ### THIS IF STATEMENT IS NOT TRUE BECAUSE  $_POST['preview'] IS NOT SET !!! ###
    // ###############################################################################
    if (isset($_POST['preview']) || isset($_POST['generate'])) {
    // ###############################################################################

        if ($generator->validate()) {
            $generator->saveStickyAttributes();
            $files = $generator->generate();
            if (isset($_POST['generate']) && !empty($_POST['answers'])) {
                $params['hasError'] = !$generator->save($files, (array) $_POST['answers'], $results);
                $params['results'] = $results;
            } else {
                $params['files'] = $files;
                $params['answers'] = isset($_POST['answers']) ? $_POST['answers'] : null;
            }
        }
    }

    return $this->render('view', $params);
}

有谁知道可能导致这种情况的原因是什么?我有一种预感,这是我忽略的非常简单的事情,但我从来没有遇到过表单中的 POST 变量没有被发送到服务器的情况。

4

1 回答 1

0

虚惊。我发现了问题。Gii 视图错误地创建了 HTML 表单。

于 2015-01-10T20:17:27.380 回答