2013-07-30 2 views
0

최근에 Symfony2를 사용하여 쉬운 웹 응용 프로그램을 만들었습니다. 주요 기능은 나를 FormType의 코드와 컨트롤러 추가 할 양식을 사용하여 데이터베이스에서 데이터를 가져 오는/저장하는 : 나는 그것이 쉬울 것이다 알고양식 데이터를 데이터베이스에 저장하는 방법

<?php 
class RegistroController extends Controller{ 

    public function registrofamAction(){ 
     $peticion = $this->get('request'); 
     $em = $this->get('doctrine')->getEntityManager(); 

     $familia = new Familia(); 

     $familia->setRol($rol='fam'); 

     $form = $this->get('form.factory')->create(
       new FamiliaType(), 
       array() 
       ); 


     $form->setData($familia); 

     if ($peticion->getMethod() == 'POST') { 
      $form->bind($peticion); 


      if ($form->isValid()) { 

       $familia->setProgenitor1($Nombrep1); 

       $em->persist($familia); 
       $em->flush(); 
      } 
     } 

     return $this->render('PreditBundle:Default:registro.html.twig', array('form' => $form->createView())); 
    } 




} 
?> 

을하지만 형태가 어떻게 명확하지 않습니다 너에게 돌아왔다. $peticion에있는 양식입니까? 양식 정보와 데이터베이스를 어떻게 관리 할 수 ​​있습니까?

모두에게 감사드립니다!

답변

0

양식이 $form 변수에 있습니다. 컨트롤러를 처음 실행하면 GET 모드에 있고 에 새로운 Familia을 생성합니다. 두 번째 호출에서 나뭇 가지에 POST을 수행 한 후 $form에 대한 요청 데이터 ($petition)를 확인한 다음 유효성을 검사하고 모든 것이 정상이면 doctrine 엔티티 관리자를 사용하여 $familia을 유지합니다. 당신은 무엇

는 심포니 책에 아주 잘 설명되어 일반적인 컨트롤러 :

http://symfony.com/doc/current/book/forms.html

조심스럽게 내가 그 읽을 꽤 문학 알고 온라인 문서 http://symfony.com/doc/current/book/index.html를 읽을 수 있지만, 잘 지불 이후 매우 잘 설명됩니다. 여기

+0

먼저 모두에게 감사드립니다. 최근에 문제를 발견했습니다. 그것은 if ($ form-> isValid())에 들어 있지 않다는 것입니다. 이제 – Droyo

+0

양식에 무엇이 잘못되었는지 알아보기 위해'$ form-> getErrors()'를 사용하여 유효성 검사 오류를 얻거나 나뭇 가지에 출력하십시오. – saamorim

+0

@Droyo, 당신은 당신의 문제를 극복 할 수 있었습니까? – saamorim

0

당신은 다음 데이터가 $ 청원 변수에 지금 당신이 요청 방법 formulaire 얻을 그리고

(당신은이 내장 어떻게 볼이 VAR를 표시 할 수 있습니다) 당신 '바인딩'양식의 데이터 개체 및 올바른 경우 데이터가 지속됩니다

+0

먼저 관심을 가져 주셔서 감사합니다. 최근에 문제를 발견했습니다. 그것은 if ($ form-> isValid())에 들어 있지 않다는 것입니다. 이제는 무엇이 잘못된지 알아 내려고 노력하고 있습니다. – Droyo

+0

전송 된 데이터가 정확하지 않기 때문일 수 있습니다. – Freelancer

관련 문제