2017-12-17 1 views
0

나는 컨트롤러 동작을 통해 사용자에게 몇 가지 자유 텍스트 입력을 요구합니다. 제출할 때 텍스트는 초기 구문 분석이 올바르게 수행되었는지를 확인하기 위해 사용자가 다른 양식에 넣으려는 몇 가지 개체로 구문 분석됩니다.다른 양식을 생성하는 Symfony 양식

일반적으로 양식 제출에 대한 응답을 처리 한 후에는 $this->redirectToRoute()을 호출하여 다른 경로로 이동하지만 사용하려는 모든 개체가 있습니다. 다른 곳으로 리디렉션하면 잃게됩니다.

어떻게 보관할 수 있습니까? 컨트롤러 작업 메서드에서 바로 저의 새로운 폼을 만들려고했으나 제출이 제대로 처리되지 않는 것 같습니다.

/** 
* @Route("/my_stuff/{id}/text_to_objects", name="text_to_objects") 
*/ 
public function textToObjects(Request $request, Category $category) { 
    $form = $this->createForm(TextToObjectsFormType::class, [ 
        'category' => $category, 
        ]); 
    $form->handleRequest($request); 
    if($form->isSubmitted() && $form->isValid()) { 
     $formData = $form->getData(); 
     $allTheStuff = textParserForStuff($formData['objectText']); 
     $nextForm = $this->createForm(StuffConfirmationFormType::class, $allTheStuff); 
     return $this->render('my_stuff/confirmation.html.twig', [ 
      'form' => $nextForm->createView(), 
      'category' => $category, 
     ]); 
    } 
    return $this->render('my_stuff/text.html.twig', [ 
      'form' => $form->createView(), 
      'category' => $category, 
    ]); 
} 

이 확인 양식을 표시하는 점을 잘 수행하지만 그 양식을 제출할 때 난 그냥 원래 TextToObjects 양식을 표시 결국?

는 알버트의 질문에 대답하기 위해, TextToObjectsFormType 단지 세 개의 필드, 생성 된 객체의 그룹에 대한 날짜 & 시간을 설정하는 방법이, 방법은 객체의 원점과 텍스트 설명을위한 텍스트 영역을 선택합니다. 나는 data_class를 설정하지 않았으므로 제출 된 정보와 연관 배열을 되 찾는다.

class TextToObjectsFormType extends AbstractType { 
    public function buildForm(FormBuilderInterface $builder, array $options) { 
     $builder 
     ->add('textSourceDateTime', DateTimeType::class, [ 
        'widget' => 'single_text', 
        'invalid_message' => 'Not a valid date and time', 
        'attr' => [ 'placeholder' => 'mm/dd/yyyy hh:mm', 
           'class' => 'js-datetimepicker', ], 
        ]) 
     ->add('objectsOrigin', EntityType::class, [ 
        'class' => ObjectSourcesClass::class, 
        ]) 
     ->add('objectText', TextareaType::class, [ 
        'label' => 'Copy and paste object description text here', 
        ]);   
    } 
} 

확정되고 잠재적으로 개정 된 개체를 다시 데이터베이스로 가져올 수있는 방법은 무엇입니까?

감사합니다.

+0

TextToObjectsFormType 코드를 공유 할 수 있습니까? – albert

답변

0

현재 아키텍처 사용 $nextForm = $this->createForm(StuffConfirmationFormType::class, $allTheStuff); 에는 충분한 정보가 없습니다. 게시물 매개 변수에는 전송 요청을 전달할 위치를 알려주는 action 매개 변수가 포함되어야합니다.

StuffConfirmationFormType에 'objectText'필드를 추가하십시오. 양식이 유효한 경우

  • 는 ELSE => 저장 물건이 text_to_objects
에 연결된 작업과 TextToObjectsFormType 렌더링 다시이 작업에서이 경로
  • 에 대한 작업을 만들기 confirmation_stuff 경로
  • 만들기

    이 기술을 사용한다고해서 숨겨진 필드를 수동으로 편집하여 비 기능 데이터를 입력하는 것을 방지 할 수는 없습니다.

    희망이 있습니다.

  • 관련 문제