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());
}
저는 심포니 전문가는 아니지만 "$ siteTariff = $ em-> find ('', $ site_tariff_id);"줄입니다. " 올바른거야? $ em은 엔티티 관리자 또는 저장소를 나타 냅니까? ($ em-> getRepository (entity) -> find ($ id)) – SmasherHell
현재 클래스와 그 부모는 무엇입니까? 때문에'getSiteTariff()'엔터티의 메서드가 아닌 유효성 검사 클래스를 생각합니다. – martinqt