私はアピールエンティティを持っています。SiteTariff、ユーザー エンティティ。関税、サイト エンティティ 検証をエンティティに移動する方法。複雑な検証: 関連するエンティティを使用。私は(エンティティで)コールバックを書き込もうとしていました=>結果なし。
$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);
}
}
コールバック時に $siteTariff を呼び出した後、オブジェクトを取得できませんでした。symfony$this->getSiteTariff()
は「非オブジェクト」と書き込みます。
public function isSiteTariffValid(ExecutionContext $context)
{
var_dump($this->getSiteTariff()->getId());
}