有没有办法配置Zend \ Form \ Element \ Select来返回整数? 如果我有一个带有这样的选择元素的表单(这是根据文档和我的网络研究配置选择元素的常用方法):
$this->add(array(
'name' => 'category_id',
'type' => 'Zend\Form\Element\Select',
'options' => array(
'label' => 'Category',
'value_options' => array(
'1' => 'Gold',
'2' => 'Silver',
'3' => 'Diamond',
'4' => 'Charm'
),
'attributes' => array(
'class' => 'form-control',
),
));
我想如果我改变这样的值选项:
$this->add(array(
'name' => 'category_id',
'type' => 'Zend\Form\Element\Select',
'options' => array(
'label' => 'Category',
'value_options' => array(
1 => 'Gold',
2 => 'Silver',
3 => 'Diamond',
4 => 'Charm'
),
'attributes' => array(
'class' => 'form-control',
),
));
将返回整数,但我错了。在这两种情况下都返回字符串。我的php代码将此表单值写入db表,其中category_id定义为int。
答案 0 :(得分:1)
在ZF2中使用Zend\Filter\Int或Zend\Filter\ToInt,具体取决于您使用的ZF2版本,Zend \ Filter \ Int在ZF2.4中已弃用。
在表单中,假设您使用的是Zend \ InputFilter \ InputFilterProviderInterface:
public function getInputFilterSpecification()
{
return array(
'category_id' => array(
'required' => TRUE,
'filters' => array(
array('name' => 'Int'),
),
'validators' => array(
// Your validators here
),
),
);
}