В submitForm() я хочу перенаправить на контроллер и передать значения формы. Значения формы - это все массивы, кстати.
Вот отправка формы.
публичная функция submitForm (массив и $ форма, FormStateInterface $ form_state) {
// получаем значения
$demo_values = $form_state->getValue('demo');
$data_set_value = $form_state->getValue('data_set');
$engineering_grades1 = $form_state->getValue('engineering_degrees1');
$engineering_grades2 = $form_state->getValue('engineering_degrees2');
$engineering_grades3 = $form_state->getValue('engineering_degrees3');
$engineering_grades4 = $form_state->getValue('engineering_degrees4');
$physical_science_степени = $form_state->getValue('physical_science_степени');
# установить данные формы в URL переадресации
$params = ['demos' => $demo_values,
'data_set' => $data_set_value,
'engineering_grades1' => $engineering_degrees1,
'engineering_grades2' => $engineering_degrees2,
'engineering_grades3' => $engineering_degrees3,
'engineering_degrees4' => $engineering_degrees4,
'physical_science_степени' => $physical_science_степени];
$form_state->setRedirect('stats_degrees.render_chart',$params);
}
}
Вот мой YML-файл маршрутизации.
stats_степени.render_form:
путь: '/statistics/stats-степени'
значения по умолчанию:
_title: «Степени инженерных и физических наук, полученные членами недопредставленных групп»
_form: '\Drupal\stats_degrees\Form\StatsDegreesForm'
требования:
_permission: 'доступ к содержимому'
статистика_степеней.render_chart:
путь: '/statistics/stats-grades-chart/{demos}/{data_set}/{engineering_degrees1}/{engineering_degrees2}/{engineering_degrees3}/{engineering_degrees4}/{physical_science_grades}'
значения по умолчанию:
_controller: '\Drupal\stats_degrees\Controller\StatsDegreesController::stats_degrees_chart'
требования:
_permission: 'доступ к содержимому'
Вот мой вызов метода контроллера.
общедоступная функция stats_degrees_chart($demos,$data_set,$engineering_degrees1,$engineering_degrees2,$engineering_degrees3,$engineering_degrees4,$physical_science_degrees) {
В настоящее время он выдает ошибку 500 после отправки формы. Есть ли лучший способ передать параметры контроллеру?