2014-03-12 1 views
0

은 내가 Name, email 같은 호텔을 찾을 수 User라는 이름의 클래스를 가지고 ... 또한 나는 banish 열이 User 클래스와 Community 클래스에 관련된 Membership 클래스를 가지고있다. User의 이름을 양식 (선택 필드)에 표시하고 부울 banish 속성을 선택한 사용자의 true으로 설정하려고합니다. 나는 다음을하고있다. ($page['community']Community 엔티티이다.) 양식을 사용하여 DB에 부울 변수를 설정하는 방법은 무엇입니까?

$form = $this->createFormBuilder() 
     ->add('banish', 'entity', array(
      'label' => $this->trans("Usuarios a expulsar"), 
      'class' => 'Pro\MembershipBundle\Entity\Membership', 
      'query_builder' => function(EntityRepository $er) use ($page){ 
       return $er->createQueryBuilder('membership')        
          ->innerjoin('Pro\UserBundle\Entity\User', 'u', 'WITH', 'membership.user = u') 
          ->where('membership.community = :community') 
        ->setParameter('community', $page['community']); 
       }, 

     )) 
     ->getForm(); 



    if ($this->getRequest()->isMethod('post') && $this->getRequest('form_id') == 'banish') { 
     if ($form->bind($this->getRequest())->isValid()) { 

      $this->getEntityManager()->flush(); 

      return $this->redirect($this->getRequest()->getUri() . '#preferences'); 
     } 
    } 
    $return['banishForm'] = $form->createView(); 

    // 

    return $return; 

와보기 :

<h2 id="banish">{{ "Expulsar miembros" | trans }}</h2> 

    <form method="post"> 
     <input type="hidden" name="form_id" value="banish"> 
     {{ form_widget(banishForm) }} 
     <input type="submit" class="btn" value="{{ "Guardar" | trans }}"> 
    </form> 

이 잘 작동하는 것 같다. 그러나 사용자를 선택하고 양식을 제출하면 Membershipbanish 열이 true으로 설정되지 않습니다. 내가 누락 된 것이 있지만 무엇을 모르겠습니다.

답변

0

사용자 클래스에서 계단식 설정이 있습니까? 멤버십 클래스 (커뮤니티 클래스에 링크 된)와의 관계에 아래 라인과 같은 것이 필요할 것입니다.

/** 
* @ORM\OneToOne(targetEntity="Membership", mappedBy="user", cascade={"all"}) 
*/ 
protected $membership 
관련 문제