Wzywam trasę i przekazuję do niej dane, w moim kontrolerze chcę uzyskać $_POST['var']
, $_POST['var2']
wygląda na to, że korzystam z HttpFoundation w drupal 8 $_POST
i $_GET
nie ma ich w starej metodzie. Jak mogę uzyskać dostęp do $_POST
parametrów w niestandardowym kontrolerze?
26
Odpowiedzi:
Z zapisu zmian :
staje się
Nawiasem mówiąc, dla
GET
vars użyłbyś:źródło
\Drupal::request()->request->all()
W kontrolerze pobierz żądanie z argumentem podanym w typie
Request $request
:Więcej informacji https://www.drupal.org/docs/8/api/routing-system/using-parameters-in-routes
źródło
Wstrzyknąć
RequestStack
do kontrolera.Bieżące żądanie zawiera
query
atrybut, który z kolei zawiera parametry GET.request
zawiera parametry POST.źródło
Możesz sprawdzić obiekt żądania jak
zwróci GET lub POST lub cokolwiek innego. Jeśli pracujesz w obiekcie, pamiętaj, aby DI zamówić usługę.
źródło
Jeśli używasz,
Content-Type: application/json
użyj:źródło
Żadna z pozostałych odpowiedzi nie działała dla mnie, ale znalazłem to, co:
źródło
Oto przykład uzyskiwania dostępu do parametrów adresu URL i przekazywania ich do szablonu TWIG. Rozważam, że masz już utworzony moduł i wymagane pliki, i przypuszczam, że „/ test? Fn = admin” to adres URL
Teraz utwórz kontroler i umieść w nim poniższy kod.
Teraz w pliku TWIG, który powinien mieć postać „my-template.html.twig”, możesz uzyskać dostęp do tego parametru jako:
I gotowe. Mam nadzieję że to pomoże.
źródło