Melhor maneira de obter objetos de solicitação nos formulários do Symfony?
Uso o Symfony e o Doctrine para gerar formulários para meus CMSes. Ultimamente, os personalizo definindo valores padrão com base em parâmetros específicos de URL.
Por exemplo, eu tenho dois modelos:PollQuestion
ePollChoice
. PollChoice
tem uma relação comPollQuestion
por meio de umpoll_question_id
campo. OPollChoice
tem um menu suspenso que lista todos os @ disponívePollQuestion
s que oPollChoice
pode ser anexado a. Eu também tenho duas rotas:pollchoices/new
epoll/:poll_id/choice/new
. Ambas as rotas exibem oPollChoiceForm
, mas usando a segunda rota, você veria automaticamente o menu suspenso PollQuestion definido como:poll_id
Parâmetro de URL. Para fazer isso, basta alterar o valor padrão do widget suspenso noPollChoiceForm
classe, buscando o valor de:poll_id
do objeto de solicitação.
Minha pergunta é dupla:
1) No momento, busco o objeto de solicitação usandosfContext::getInstance()->getRequest()
. Eu sei dissosfContext::getInstance()
é desaprovado, mas não consegui encontrar outra maneira de buscá-lo. Existe outro caminho? A injeção de dependência parece ser um bom caminho a percorrer, mas não sei como fazer isso sem fazer muitos hackers (o que eu gostaria de evitar).
2) Estou seguindo completamente a maneira errada de alterar os valores padrão de um formulário com base nos parâmetros de UR