【问题标题】:how to remove fields from form class and view如何从表单类和视图中删除字段
【发布时间】:2019-12-27 15:39:38
【问题描述】:

根据调用表单的位置,我想删除一些未使用的字段。 我在控制器类中尝试了以下操作:

switch ($typ){
        case 3:                   //Analyse
            $form->get('analyseid')->setValue($id); //works
            $form->remove('vertragid');  //doesn't work
            break;
    }

我收到一些错误:

在表单中找不到名为 [vertragid] 的元素 \wiedervorlage\add.phtml(25): Zend\Form\Fieldset->get('vertragid')

当然,我会尝试在 view.phtml 脚本中获取属性。

我的问题是:如何从表单和视图中删除字段。

【问题讨论】:

    标签: zend-form zend-framework3


    【解决方案1】:

    虽然我不太喜欢这种变通方法,但这里的解决方案非常简单。

    如果您需要删除在某些条件下给出的某些元素,您可以使用以下行从控制器中删除它们:

    switch ($typ) {
        case 3:
            // Remove the element 'vertragid'
            $form->remove('vertragid');
            // Remove inputfilters. This is necessary, because if the element
            // is required, the inputfilter will always block the validation
            // of the form
             $form->getInputFilter()->remove('vertragid');
            break;
    }
    

    为避免您的视图出现错误,您必须检查该元素是否存在于表单中:

    if ($form->has('vertragid')){
        echo $this->formRow($form->get('vertragid');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-11
      • 2016-01-30
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 2021-07-14
      相关资源
      最近更新 更多