Zend Framework 2 形式

Posted

技术标签:

【中文标题】Zend Framework 2 形式【英文标题】:Zend Framework 2 form 【发布时间】:2013-11-19 00:51:31 【问题描述】:

我有一个难题。 如果将绑定(对象)的数据添加到表单中,我想在我的表单中,根据图像是否存在,该项目是否显示在表单上。

我是这样解决的,不知道对不对。

        $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 中。

这使渲染不受控制器的影响,并保持了良好的关注点分离。

【讨论】:

以上是关于Zend Framework 2 形式的主要内容,如果未能解决你的问题,请参考以下文章

Zend Framework 2表单

IOS SDK开发详解(.framework、.a、Bundle资源文件创建、SDK中使用其他SDK等)

Zend Framework 调用表单作为表单中的子表单

Zend Framework windows8.1下配置zend framework1.12

Zend Framework 2 入门

文件上传表单的 Zend 验证器大小 - Zend Framework 2.3