Eu sou muito novo no symfony. Em outros idiomas, como java e outros, posso usar request.getParameter('parmeter name')
para obter o valor.
Existe algo semelhante que possamos fazer com o symfony2.
Eu já vi alguns exemplos, mas nenhum está funcionando para mim. Suponha que eu tenha um campo de formulário com o nome nome de usuário . Na ação de formulário, tentei usar algo como isto:
$request = $this->getRequest();
$username= $request->request->get('username');
Eu também tentei
$username = $request->getParameter('username');
e
$username=$request->request->getParameter('username');
No entanto, nenhuma das opções está funcionando.
foreach($request->request->all() as $req){
print_r($req['username']);
}
Onde estou fazendo errado ao usar o getParameter()
método Qualquer ajuda será apreciada.
$request->request-get()
deveria ser$request->request->get()
. Poderia ser isso?get()
é o método correto e (b) ativou os avisos do PHP para ver se há algum problema? (c) O Symfony 2 possui uma barra de ferramentas de depuração como o symfony 1, para que você possa ver se cometeu algum erro?Respostas:
A nomeação não é tão intuitiva:
fonte
$_GET
data são dados da string de consulta (nenhumaGET
solicitação é necessária) e$_POST
dados são dados do corpo da solicitação (não precisa ser umaPOST
solicitação também, poderia serPUT
).$request->get
e$request->post
seria mais simples.Eu faço isso ainda mais simples:
Outra opção é introduzir seus parâmetros em sua definição de função de ação:
que assume que você definiu {foo} e {bar} como parte do seu padrão de URL no seu arquivo routing.yml:
fonte
foo
parâmetro na string de consulta e no corpo do POST, qual será retornado por$request->get('foo')
?$request->get('foo');
para TODAS as malas (a ordem é: CAMINHO, GET, POST). No entanto,$request->request->get('foo');
funciona apenas para o saco POST. Finalmente, o primeiro ($request->get()
) não é recomendado se soubermos onde estão os dados (GET / POST).Você pode usar o código a seguir para obter seus valores de campo de formulário
Ou Você também pode obter todos os valores de formulário como matriz usando
fonte
experimentar
inspecione o nome do atributo do seu campo formular
fonte
Dentro de um controlador:
fonte
$this->getRequest()
é preterido, em favor de injetar o Pedido na ação do controlador, por exemplo:public function showAction(Request $request, $id);
Suas opções:
$request->request->get('param')
($_POST['param']
) ou$request->query->get('param')
($_GET['param']
)Mais informações
OptionsResolver
- http://symfony.com/doc/current/components/options_resolver.htmlfonte
Como agora o
$this->getRequest()
método está obsoleto, você precisa injetar umRequest
objeto na sua ação do controlador desta maneira:Depois disso, você pode usar um dos seguintes.
Se você deseja buscar dados POST da solicitação, use o seguinte:
mas se você deseja buscar dados GET da solicitação, use este:
fonte
Você pode fazer isso:
Às vezes, quando os atributos estão protegidos, você não pode ter acesso para obter o valor do método comum de acesso:
(POSTAR)
(OBTER)
(GENÉRICO)
fonte
$clientName = $request->query->get('clientName','any');
A maioria dos casos, como obter parâmetros de sequência ou formulário de consulta, é abordada nas respostas acima.
Ao trabalhar com dados brutos, como uma string JSON bruta no corpo que você gostaria de fornecer como argumento
json_decode()
, o métodoRequest::getContent()
pode ser usado.Informações úteis adicionais sobre solicitações HTTP no Symfony podem ser encontradas na documentação do pacote HttpFoundation .
fonte
fonte
Request
parâmetro? (por exemplo, em funções privadas da classe controller, por exemplo)Obrigado, você também pode usar o código acima
fonte
Se você precisar obter o valor de uma seleção, poderá usar:
fonte
Tente isso, funciona
Saudações
fonte
fonte
Para usuários do symfony 4:
fonte
# www.example / register / admin
fonte