2012-10-17 6 views
4

항소심이 있습니다. SiteTariff, 사용자 엔티티; 요금, 사이트 엔터티 유효성 검사를 엔터티로 이동하는 방법. 유효성 검사 복잡성 : 관련 엔티티 관련. 결과없이 콜백 (엔티티에서) =>을 작성하려고했습니다. Symfony 2 유효성 검사를 엔티티로 이동, 관련 엔티티와의 유효성 확인

$appeal = new Appeal(); 
    $form = $this->createFormBuilder($appeal); 

    if ($request->isMethod('POST')) 
    { 
     $form->bind($request); 

     $appeal->setUser($user); //addRelation 

     $appeal->appeals_count = $value; //set value to public field 

     if ($site_tariff_id = $form->getData()->site_tariff_id) 
     { 
      $siteTariff = $em->find('', $site_tariff_id); 
      $appeal->setSiteTariff($siteTariff); //addRelation 
     } 
     else 
     { 
      //addError, break 
     }      


     if ($appeal->getSiteTariff()->getSite()->getUser()->getId() != $user->getId()) 
     { 
      //addError 
     } 

     if ($appeal->getSiteTariff()->getTariff()->getAppealsNumber() <= $appeal->appeals_count) 
     { 
      //addError 
     } 

     if ($form->isValid()) 
     { 
      $em->persist($appeal); 
     } 
    } 

콜백에서 내가 $this->getSiteTariff()을 호출 한 후 $ siteTariff 개체를하지 않았다, 심포니는

public function isSiteTariffValid(ExecutionContext $context) 
    { 
     var_dump($this->getSiteTariff()->getId());  
    } 
+0

저는 심포니 전문가는 아니지만 "$ siteTariff = $ em-> find ('', $ site_tariff_id);"줄입니다. " 올바른거야? $ em은 엔티티 관리자 또는 저장소를 나타 냅니까? ($ em-> getRepository (entity) -> find ($ id)) – SmasherHell

+0

현재 클래스와 그 부모는 무엇입니까? 때문에'getSiteTariff()'엔터티의 메서드가 아닌 유효성 검사 클래스를 생각합니다. – martinqt

답변

관련 문제