zendframework 2表单填充数据库中的复选框值

时间:2014-02-01 14:54:35

标签: forms doctrine-orm zend-framework2

我正在使用zendframework 2和doctrine 2.我想从我的数据库中的值填充复选框的值(依赖注入)。

我从https://github.com/doctrine/DoctrineModule/blob/master/docs/form-element.md

获得了这项技术

这是我的元素(它适用于选择元素,但不适用于复选框):

$this->add(array(
    'type' => 'Zend\Form\Element\MultiCheckbox',
    'name' => 'timesId',
    'options' => array(
        'label' => 'Please Select Your Availablity',
        'value_options' => array(
            'object_manager' => $this->getObjectManager(),
            'target_class'   => 'FormDependencies\Entity\AvailablityTimeTableList',
             'property'       => 'job',
         ),
     ),
     'attributes' => array(
         'value' => '1' //set checked to '1'
     )
 ));

public function getObjectManager()
{
    return $this->objectManager;
}     

我无法找到复选框的本机doctrine 2方法。

错误消息:

  

致命错误:无法使用Doctrine \ ORM \ EntityManager类型的对象作为数组

1 个答案:

答案 0 :(得分:0)

我已经解决了;

在类型i下的需要指定它的a:

'type'    => 'DoctrineModule\Form\Element\ObjectMultiCheckbox',

完整代码:

$this->add(array(
        'type'    => 'DoctrineModule\Form\Element\ObjectMultiCheckbox',
        'name'    => 'timesId',
        'options' => array(
            'label'          => 'Please Select Your Availablity',
            'object_manager' => $this->getObjectManager(),
            'target_class'   => 'FormDependencies\Entity\AvailablityTimeTableList',
            'property'       => 'times',
            'empty_option'   => '--- please choose ---'
        ),