peb*_*bbo 5 html-select zend-framework2
我正在尝试将一个选择框添加到我的一个表单中(只是输入类型="文本"元素工作得很好)但我得到的只是一个没有标签的空选择框.所以这是我使用的代码:
Bla.php :: Bla-> getInputFilter()
$inputFilter->add($factory->createInput(array(
'type' => 'Zend\InputFilter\Select',
'name' => 'payment_type',
'required' => true,
'filters' => array(
array('name' => 'Int'),
),
)));
Run Code Online (Sandbox Code Playgroud)
BlaForm.php :: BlaForm - > __ construct():
$this->add(array(
'type' => 'Zend\Form\Element\Select',
'name' => 'payment_type',
'options' => array(
'label' => 'Payment',
'value_options' => array(
0 => 'Nur Überweisung',
1 => 'Nur Paypal',
2 => 'Nur Barzahlung im Voraus',
),
),
'attributes' => array(
'value' => 0 //set selected to "Nur Überweisung"
)
));
Run Code Online (Sandbox Code Playgroud)
bla.php(查看)
<div class="control-group">
<?php
echo $this->formLabel($form->get('payment_type')->setLabelAttributes(array(
'class' => 'control-label'
)));
?>
<div class="controls">
<?=$this->formElement($form->get('payment_type'));?>
<span class="help-inline"><?=$this->formElementErrors($form->get('payment_type'));?></span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用"options"而不是"value_options",昨天我了解到它只是"value_options"的别名.我也在我的视图中尝试使用formSelect()而不是formElement(),但这也没有改变任何东西.为了测试目的,我甚至从字符串中删除了变音符号...
有没有人遇到同样的问题或有任何想法,我目前做错了什么?
我刚刚在本地针对当前的master(rev 9747bd01d)尝试了你的例子,它们没有问题 - 在表单上使用formCollection(),或在单个元素上使用formElement()或formSelect().在每种情况下,我得到以下标记:
<select name="payment_type"><option value="0" selected="selected">Nur Überweisung</option>
<option value="1">Nur Paypal</option>
<option value="2">Nur Barzahlung im Voraus</option></select>
Run Code Online (Sandbox Code Playgroud)
您使用的是哪个版本的ZF2?你可以测试2.0.2或当前的主机吗?