Estou usando jQuery
para editar meu formulário que está embutido Symfony
.
Estou mostrando o formulário na jQuery
caixa de diálogo e enviando-o.
Os dados estão entrando corretamente no banco de dados.
Mas não sei se preciso mandar alguns de JSON
volta para jQuery
. Na verdade, estou um pouco confuso com as JSON
coisas.
Suponha que eu tenha adicionado uma linha em minha tabela com `` jQuery e quando eu enviar o formulário, depois que os dados forem enviados, eu queira enviar de volta esses dados de linha para que possa adicionar dinamicamente a linha da tabela para mostrar os dados adicionados.
Estou confuso como posso obter esses dados de volta.
Este é meu código atual:
$editForm = $this->createForm(new StepsType(), $entity);
$request = $this->getRequest();
$editForm->bindRequest($request);
if ($editForm->isValid()) {
$em->persist($entity);
$em->flush();
return $this->render('::success.html.twig');
}
Este é apenas o modelo com mensagem de sucesso.
fonte
Symfony 2.1 tem uma classe JsonResponse .
O array passado será codificado em JSON, o código de status será padronizado como 200 e o tipo de conteúdo será definido como application / json.
Também existe uma
setCallback
função útil para JSONP.fonte
Desde Symfony 3.1 você pode usar JSON Helper http://symfony.com/doc/current/book/controller.html#json-helper
fonte
Para completar @thecat na resposta plana, recomendo também envolver sua ação dentro de um
try … catch
bloco. Isso impedirá que seu endpoint JSON interrompa as exceções. Aqui está o esqueleto que uso:Desta forma, seu endpoint se comportará de maneira consistente mesmo em caso de erros e você poderá tratá-los diretamente do lado do cliente.
fonte
Se seus dados já estiverem serializados:
a) enviar uma resposta JSON
b) enviar uma resposta JSONP (com callback)
Se seus dados precisam ser serializados:
c) enviar uma resposta JSON
d) enviar uma resposta JSONP (com callback)
e) usar grupos no Symfony 3.xx
Crie grupos dentro de suas entidades
Normalize seu objeto Doctrine dentro da lógica de sua aplicação
fonte