Eu chamo ajaxly de uma rota e passo os dados para ela. No meu controlador, quero obter $_POST['var']
, $_POST['var2']
parece que, devido ao uso de HttpFoundation no drupal 8, $_POST
e $_GET
não existe no método antigo, como posso acessar $_POST
parâmetros no Controller personalizado?
22
Respostas:
No registro de alterações :
torna-se
Aliás, para
GET
vars, você usaria:fonte
\Drupal::request()->request->all()
Em um controlador, obtenha a solicitação com um argumento com dicas de tipo
Request $request
:Mais informações https://www.drupal.org/docs/8/api/routing-system/using-parameters-in-routes
fonte
Injete
RequestStack
no seu controlador.A solicitação atual contém o
query
atributo que, por sua vez, contém os parâmetros GET.request
contém os parâmetros POST.fonte
Você pode verificar o objeto Request como
ele retornará GET ou POST ou o que for. Se você estiver trabalhando dentro de um objeto, lembre-se de registrar o serviço de solicitação.
fonte
Se você estiver usando
Content-Type: application/json
, use:fonte
Nenhuma das outras respostas funcionou para mim, mas achei o seguinte:
fonte
Aqui está o exemplo de como acessar parâmetros de URL e passá-los para um modelo TWIG. Estou considerando que você já criou seu módulo e os arquivos necessários e suponha que "/ test? Fn = admin" seja sua URL
Agora crie seu controlador e insira o código abaixo.
Agora, no seu arquivo TWIG, que deve ser "my-template.html.twig", você pode acessar este parâmetro como,
E está feito. Espero que isto ajude.
fonte