Tworzę niestandardowy formularz w Drupal 8, pamiętam, że możemy przekierować na niestandardową ścieżkę w Drupal 7 za pomocą zestawu $form_state['redirect'] = 'mycustompath';
w niestandardowym module obsługi przesyłania, ale w jaki sposób można przekierować użytkownika po przesłaniu formularza w Drupal 8?
Wiem, że powinienem użyć submitForm
metody:
public function submitForm(array &$form, FormStateInterface $form_state)
{
//submissions jobs ...
//redirect path
}
forms
8
redirection
Yusef
źródło
źródło
$form_state->setRedirect('/start');return;
, załóżmy, że chcę przekierować na stronę główną. jaki jest dokładny fragment?'<front>'
pracowałeś co na temat aliasu ścieżki? to moja trasatcdev.content: path: '/start' defaults: _controller: 'Drupal\tcdev\Controller\TrainingCenterController::content' _title: 'Start Training Center' requirements: _permission: 'access content'
Jeśli chcesz ustawić na buildform, musisz użyć ścieżki routingu, takiej jak.
źródło
Url' not found
use Drupal\Core\Url;
(bez poprzedniego ukośnika)$form_state->setRedirectUrl($url);
może być również użyty w submForm ().Jeśli chcesz przekierować formularz edycji użytkownika na stronę główną lub inną stronę, postępuj zgodnie z poniższym kodem.
Najpierw dodaj hook - hook_form_alter`
po dodaniu haka dodaj funkcję poniżej
Mam nadzieję, że ta pomoc.
źródło
$form_state->setRedirect()
w formularzu prześlij, aby wszystkie pozostałe procedury obsługi przesyłania mogły być przetwarzane.