ジレンマがあります。バインド(オブジェクト)されたデータがフォームに追加された場合、画像が存在するかどうか、アイテムがフォームに表示されるかどうかに応じて、フォームに追加したいと思います。
私はこのように解決しましたが、これが正しいかどうかはわかりません。
$id = (int) $this->params()->fromRoute('id', 0);
$coupon = $this->getEntityManager()->find('Application\Entity\Coupon', $id);
$forms = $this->getServiceLocator()->get('FormElementManager');
$form = $forms->get('CouponForm');
$form->bind($coupon);
$form->setBindOnValidate(false);
$form->get('dateStart')->setValue($coupon->getDateStart()->format('Y-m-d'));
$form->get('dateEnd')->setValue($coupon->getDateEnd()->format('Y-m-d'));
if($coupon->getImageUrl()) {
$form->get('image')->setAttribute('src', $coupon->getImageUrl());
}else {
$form->remove('image');
}
解決する方が良いでしょうか?