创建一个文本输入框,我用的Zend framework2 folling代码
use Zend\Form\Form;
class Loginform extends Form
{
public function __construct()
{
$this->add(array(
'name' => 'usernames',
'attributes' => array(
'id' => 'usernames',
'type' => 'text',
),
'options' => array(
'label' => 'User Name',
),
));
}
}
我可以在控制器动作用填充值
$form = new Loginform();
$form->get('usernames')->setAttribute('value', 'user 1');
任何想法,我该怎么做同样的选择/下拉框中ZF2?
参考文献: Zend框架2文档
检查API(该文档是可怕的,所以检查的代码)。
使用Zend\Form\Element\Select
类和设置选项的属性如下所示:
$element->setAttribute('options', array(
'key' => 'val',
...
));
输出使用该元件FormRow
或FormSelect
视图助手。
这个网站也是例子和信息的良好来源: http://zf2.readthedocs.org/en/latest/modules/zend.form.quick-start.html
例:
$this->add(array(
'type' => 'Zend\Form\Element\Select',
'name' => 'usernames',
'attributes' => array(
'id' => 'usernames',
'options' => array(
'test' => 'Hi, Im a test!',
'Foo' => 'Bar',
),
),
'options' => array(
'label' => 'User Name',
),
));
您还可以分配在控制器的选择,如果你需要,如上图所示。
$form = new Loginform();
$form->get('usernames')->setValueOptions($usernames );
$用户名是一个数组
参考点击这里
Zend框架2.2,选择选项已移到而不是“属性”选择',所以上面的代码也将被改变
$this->add(array(
'type' => 'Zend\Form\Element\Select',
'name' => 'usernames',
'attributes' => array(
'id' => 'usernames'
),
'options' => array(
'label' => 'User Name',
'options' => array(
'test' => 'Hi, Im a test!',
'Foo' => 'Bar',
),
),
));
如果你想这样做的控制器,然后做这样的方式
$form->get('ELEMENT_NAME')->setAttribute('options' ,array('KEY' => 'VALUE'));