W Drupal 7 używam następującego kodu.
function my_goto($path) {
drupal_goto($path, array(), 301);
}
Jakiego kodu powinienem użyć w Drupal 8?
redirection
8
Anu Mathew
źródło
źródło
Odpowiedzi:
Jest to kod, który powinien być użyty w Drupal 8. Zobacz zmianę Record, aby uzyskać więcej informacji.
źródło
use Symfony\Component\HttpFoundation\RedirectResponse;
Budować na odpowiedź anu Mateusza ;
Aby dodać kod stanu, jest to tylko drugi parametr w klasie RedirectResponse;
źródło
Nie pracowałem jeszcze w
drupal_goto
Drupal 8, ale zgodnie z dokumentacją został usunięty z Drupal 8.W miejscu
drupal_goto
musisz napisać:i coś takiego z parametrami:
Sprawdź tutaj https://www.drupal.org/node/2023537 i klasę RedirectResponse
źródło
\Drupal::url('route.name')
swoim adresem URL lub być może adresem bezwzględnym.Można to osiągnąć, wykorzystując wbudowane symfonie EventDispatcher Component. Wszystko, co musisz zrobić, to stworzyć niestandardowy moduł. Dodaj plik services.yml i zapewnij odpowiednią konfigurację usługi.
w swoim katalogu src modułów dodaj stwórz klasę EventSubscriber.php i opisz tutaj swoje metody.
źródło
Dla mnie idealnie działający kod przekierowania jest następujący:
W pozostałych przypadkach otrzymuję jakieś wyjątki lub błędy, na przykład: LogicException: Kontroler musi zwrócić odpowiedź ...
LUB
https://www.drupal.org/project/drupal/issues/2852657
Jest już dyskusja na ten temat, mam nadzieję, że to pomaga!
źródło
działa to w przypadku przekierowania wewnętrznego lub zewnętrznego:
źródło