Форма Zend Framework 2

У меня дилемма. Я хотел бы, чтобы в моей форме, если данные, которые являются привязкой (объект), добавлены в форму, в зависимости от того, существует изображение или нет, элемент отображается в форме или нет.

Я решил это так, но я не знаю, правильно ли это.

        $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');
        }

Это может быть лучше решить?

1 ответ

Если вы хотите изменить отображение самой формы, логика рендеринга / не рендеринга купона, скорее всего, должна существовать в View Helper.

Это сохраняет рендеринг свободным от контроллера и обеспечивает хорошее разделение задач.

Другие вопросы по тегам