Я установил последнюю версию yii2, используя расширенный шаблон. Сайт работает нормально. По какой-то причине инструмент генерации Gii застрял и не реагирует должным образом после нажатия кнопки предварительного просмотра. Вместо того, чтобы показывать новую форму с помощью кнопки «Создать», она показывает ту же форму в неизменном виде без каких-либо сообщений о том, что происходит.
Используя xdebug, я вижу в методе «actionView» DefaultController, что значение массива $ _POST [‘preview’] не задано, то есть его нет в массиве $ _POST. Я ничего не изменил в форме представления и все выглядит хорошо. Кнопка отправки имеет имя «предварительный просмотр», и форма отправляется, но массив $ _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 из формы не отправлялись на сервер.
Ложная сигнализация. Я нашел проблему. Представление Gii создавало форму HTML неправильно.
Других решений пока нет …