如何在视图中设置zf2 formTextarea帮助器的属性

时间:2015-01-20 08:20:24

标签: view zend-framework2 helper form-helpers

我正在为zf2项目开发一个编辑表单。我有一个数据实体和一个实体的字段集。 fieldset中的元素定义如下:

    $this->add(array(
        'name' => 'headlineText',
        'type' => 'Zend\Form\Element\Textarea',
        'attributes' => array(
            'type'  => 'text',
        ),
        'options' => array(
            'label' => 'text',
        ),
    ));

在视图中,元素呈现如下:

$hfs=$form->get('headline-fieldset');
$headlineText = $hfs->get('headlineText');

      ...

      $this->formTextarea($headlineText),

如果我想更改元素的属性,我可以在字段集中执行此操作:

    $this->add(array(
        'name' => 'headlineText',
        'type' => 'Zend\Form\Element\Textarea',
        'attributes' => array(
            'type'  => 'text',
            'rows'  => 10,    // THIS CHANGES THE NUMBER OF ROWS
        ),
        'options' => array(
            'label' => 'text',
        ),
    ));

如果我想更改元素的属性,但在视图中进行这些更改,我会认为它会像这样:

$hfs=$form->get('headline-fieldset');
$headlineText = $hfs->get('headlineText');
$headlineText->setAttrib('rows', 15); // TO CHANGE THE NUMBER OF ROWS

      ...

      $this->formTextarea($headlineText),

然而,这会返回:

Fatal error: Call to undefined method Zend\Form\Element\Textarea::setAttrib()

如何在视图中设置元素属性?

1 个答案:

答案 0 :(得分:1)

我认为错误信息很清楚,ZF2中没有setAttrib方法。您可能误认为它与ZF1元素包。在ZF2中,它是setAttribute method

示例:

$headlineText->setAttrib('rows', 15); // Wrong
$headlineText->setAttribute('rows', 15); // Correct
相关问题