필자는 Symfony와 Doctrine을 사용하여 내 CMSes 용 양식을 생성합니다. 최근에는 특정 URL 매개 변수를 기반으로 기본값을 설정하여 맞춤 설정했습니다.Symfony 양식에서 요청 객체를 얻는 가장 좋은 방법은 무엇입니까?
예를 들어 PollQuestion
과 PollChoice
의 두 모델이 있습니다. PollChoice
은 poll_question_id
필드를 사용하여 PollQuestion
과 관련이 있습니다. PollChoice
양식에는 PollChoice
을 첨부 할 수있는 모든 PollQuestion
이 나열된 드롭 다운 목록이 있습니다. 또한 두 경로가 있습니다 : pollchoices/new
및 poll/:poll_id/choice/new
. 두 경로 모두 PollChoiceForm
을 표시하지만 두 번째 경로를 사용하면 :poll_id
URL 매개 변수로 설정된 PollQuestion 드롭 다운이 자동으로 표시됩니다. 단순히 PollChoiceForm
클래스의 드롭 다운 위젯의 기본값을 요청 객체에서 :poll_id
값을 가져 와서 변경합니다. 나는 현재 sfContext::getInstance()->getRequest()
를 사용하여 요청 객체를 가져
1) :
내 질문은 두 가지입니다. sfContext::getInstance()
은 frowned하지만, 나는 그것을 가져올 다른 방법을 찾을 수 없었습니다. 다른 방법이 있습니까? 의존성 주입은 좋은 방법 인 것처럼 보이지만 해킹을 많이하지 않고이를 수행하는 방법을 알지 못합니다 (필자는이를 피하고 싶습니다).
2) URL 매개 변수를 기반으로 양식의 기본값을 변경하는 잘못된 방식에 대해 완전히 고민하고 있습니까?
나는이 방법을 좋아한다. 내 사용자 지정 관리자 테마의 동작을 편집하여 자동으로 생성자 내에 삽입한다고 생각합니다. –