În submitForm() vreau să redirecționez către un controler și să transmit valorile formularului. Valorile formularului sunt toate matrice, btw.
Aici este submitForm.
funcția publică submitForm(matrice &$form, FormStateInterface $form_state) {
// obține valori
$demo_values = $form_state->getValue('demo');
$data_set_value = $form_state->getValue('data_set');
$grade_inginerie1 = $form_state->getValue('grade_ingineria1');
$grade_inginerie2 = $form_state->getValue('grade_inginerie2');
$grade_inginerie3 = $form_state->getValue('grade_inginerie3');
$grade_inginerie4 = $form_state->getValue('grade_ingineria4');
$grade_de_știință_fizică = $form_state->getValue('grade_de_știință_fizică');
# setați datele formularului în redirecționarea URL
$params = ['demos' => $demo_values,
'data_set' => $data_set_value,
'engineering_degrees1' => $engineering_degrees1,
'engineering_degrees2' => $engineering_degrees2,
'engineering_degrees3' => $engineering_degrees3,
'engineering_degrees4' => $engineering_degrees4,
'grade_de_știință_fizică' => $grade_de_știință_fizică];
$form_state->setRedirect('stats_degrees.render_chart',$params);
}
}
Aici este fișierul meu de rutare YML.
stats_degrees.render_form:
cale: „/statistici/stats-degrees”
implicite:
_title: „Diplome de inginerie și științe fizice obținute de membrii grupurilor subreprezentate”
_form: „\Drupal\stats_degrees\Form\StatsDegreesForm”
cerinte:
_permission: „accesează conținut”
stats_degrees.render_chart:
cale: „/statistics/stats-degrees-chart/{demos}/{data_set}/{engineering_degrees1}/{engineering_degrees2}/{engineering_degrees3}/{engineering_degrees4}/{physical_science_degrees}”
implicite:
_controller: „\Drupal\stats_degrees\Controller\StatsDegreesController::stats_degrees_chart”
cerinte:
_permission: „accesează conținut”
Iată apelul meu la metoda Controller.
funcția publică stats_degrees_chart($demos,$data_set,$engineering_degrees1,$engineering_degrees2,$engineering_degrees3,$engineering_degrees4,$physical_science_degrees) {
În prezent, trimite o eroare 500 după ce trimit formularul. Există o modalitate mai bună de a transmite parametrii controlerului?