2014-01-27 49 views
0

快速问题。zendframework form2如何在隐藏表单元素中设置值l

我想在一个隐藏的表单元素中设置一个值。这是我在下面做的,但它不起作用。

我想将值7添加到隐藏的窗体字段。我使用了值选项字段。但它不起作用。

$this->add(array(
     'type' => 'Zend\Form\Element\Hidden', 
     'name' => 'id', 
     'options' => array(
      'value_options' => array(
       'id'=> 7 , 
    ), ), 

    )); 

下面是我的表单页面:

namespace Workers\Form\Fieldset; 


use Doctrine\Common\Persistence\ObjectManager; 
use DoctrineModule\Stdlib\Hydrator\DoctrineObject as DoctrineHydrator; 
use Zend\Form\Fieldset; 
use Zend\InputFilter\InputFilterProviderInterface; 

class JobSortFieldset extends Fieldset implements InputFilterProviderInterface 
{ 
    public function __construct(ObjectManager $objectManager, $id ) 
    { 
     parent::__construct('JobSort'); 



     $this->setHydrator(new DoctrineHydrator($objectManager, 'Workers\Entity\JobSort')) 
      ->setObject(new JobSort()); 


     $this->add(array(
      'type' => 'Zend\Form\Element\Hidden', 
      'name' => 'id', 
      'options' => array(
       'value_options' => array(
        'id'=> 7 , 
     ), ), 

     )); 
+0

问题是:你为什么要设置一个这样的值?你有什么用途?设置一个这样的ID似乎......麻烦至少。 – Sam

回答

1

选项value_options用于多值元素(MultiCheckbox,选择等),对于像隐藏简单元件只需设置value属性:

$this->add(array(
    'type' => 'Zend\Form\Element\Hidden', 
    'name' => 'id', 
    'attributes' => array(
     'value' => 7, 
    ), 
)); 
+0

你好IKu。感谢您的帮助 – andreea115

+0

+1您也可以使用'$ element-> setValue($ value)'(与'$ element-> setAttribute('value',$ value)''相同) – AlexP