如何从表单类和视图中删除字段

问题描述 投票:0回答:1

取决于调用表单的位置,我想删除一些未使用的字段。我从控制器类中尝试了以下方法:

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 skript中获取属性。

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

zend-form zend-framework3
1个回答
0
投票

虽然我并不是这种解决方法的真正拥护者,但是这里的解决方案非常简单。

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

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');
}
© www.soinside.com 2019 - 2024. All rights reserved.