将php中的变量重新初始化为NULL

时间:2016-06-20 15:35:58

标签: php post controller initialization yii2-advanced-app

我正在写一个简单的游戏页面。我的Controller方法如下所示:

$model = new Game143();

    if ($model->load(Yii::$app->request->post()) && $model->validate()) {
        $model->verifyAnswers();
        return $this->render('Game143-confirm', ['model' => $model]);
    } else {
        $model->initGame(1, 2);
        return $this->render('Game143', ['model' => $model]);
    }

else是重要的一点。 initGame方法传递了起始级别和最大级别数,所以我用随机数字迭代2次,一切正常。

在我的init方法中,我设置了值:

public function initGame($level, $numEx) {
    $this->maxLevel = $numEx; // normally 10
    $this->thisLevel = $level; //normally 1

我也做了一些输出。这很好用,我的变量保存为2

在控制器的if方法中,我的变量突然设置为NULL ?! 因此,即使我的结果是NULL,因为我的迭代是<=maxLevel。有人知道为什么会这样吗?

verifyAnswers();中,我的给定和初始化的maxLevel为NULL。 迭代不可能:

for(; $this->thisLevel <= $this->maxLevel; $this->thisLevel++) {

如果我硬编码maxLevel一切正常。

在视图中(使用yii-2):

for($model->thisLevel = 1; $model->thisLevel <= $model->maxLevel; $model->thisLevel++) {
$out .= "\n";
$out .= Html::activeHiddenInput($model,"digit1[$model->thisLevel]");
$out .= "\n";
$out .= Html::activeHiddenInput($model,"digit2[$model->thisLevel]");
$out .= "\n";
$out .= "\n";
$out .= "<h3>Level $model->thisLevel</h3>\n";   
$out .= "<h3>max $model->maxLevel</h3>\n";
$out .= "\n";
$out .= "<div class=\"row aufgabenFeld\">";
$out .= "<div align=\"right\" class=\"col-lg-4 col-md-4 col-xs-4 wallLabel \">";
$out .= $model->digit1[$model->thisLevel];
$out .= "</div>";

$out.="<div id='myField__<?php echo $model->thisLevel; ?>' class=\"col-lg-2 col-md-2 col-xs-2 wall\">\n";
$out .= $form->field($model, "proposal[$model->thisLevel]")->label(false);
$out .= "</div>";

$out .= "<div  align=\"left\" class=\"col-lg-4 col-md-4 col-xs-4 wallLabel \">"; //id test xD
$out .= $model->digit2[$model->thisLevel];
$out .= "</div>";
$out .= "</div>";

$out .= "<div><br></div>";

在'submitView'中:

foreach ($model->proposal as $key=>$value){
$out .= "<li><h4>Aufgabe $key</h4>";
$out .= $model->digit1[$key];
$out .= " ";
$out .= $model->proposal[$key];
$out .= " ";
$out .= $model->digit2[$key];
$out .= $model->maxLevel[$key];
$out .= "</li>";
}

0 个答案:

没有答案