簡體   English   中英

如何在特定位置添加zend表單元素?

[英]How to add zend form element at specific position?

我創建了一個抽象表單類,它將一個submit元素添加到表單中。 當我的其他表單類擴展此表單類時,我不得不在類的底部調用parent::__construct() ,以便最后添加submit元素。

如果我首先調用parent::__construct() ,如何將提交按鈕設置為始終是表單中的最后一個元素?

表單add函數接受兩個參數 - 數組或元素實例以及flags數組。 其中一個標志選項是priority 數字越小,它出現的元素列表中的值越低。 因此,將其設置為-1000(除非您有超過1000個元素)將設置提交按鈕顯示在窗體的底部:

$this->add([
    'name' => 'submit',
    'type' => 'submit',
    'attributes' => [
        'value' => 'Submit',
        'class' => 'btn btn-sm',
    ],
    'options' => []
],
[ 'priority' => -1000 ]);

理查德·帕蘭比 - 金的回答很好,但對於觀點是謹慎的:

在視圖中,我們有很多選項來顯示表單:

  • <?= $this->form($form)?>
  • <?= $form->get('{element}') ?>
  • 循環遍歷$form->getIterator()
  • 循環$form->getElements()

等等...

我不得不說我在所有項目中都使用了很多這個結構:

<?php foreach ($form->get('fieldset')->getElements()  as $elementName => $element): ?>
     <?= $this->partial('partial/formElement', ['element' => $element])?>
<?php endforeach ?>

問題是:getElements不使用優先級,因此它只是按照實例化的順序給出元素。

在視圖中,我們必須使用迭代方法( $form->getIterator() )來獲取此優先級。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM