post — Повторная инициализация переменной в php в NULL

Я пишу простую страницу игры. мой 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>";
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]