ZF2:使用数据库中的日期填充表单中的select元素

时间:2012-10-30 05:27:02

标签: php zend-form zend-framework2

我有一个简单的一对多关系数据库,如下所示:

Tables   Company        Category
Rows     ID             ID
         Name           Name
         Category_ID

我有一个表单,我可以添加,编辑和删除公司或类别的名称,这可以正常工作。按ID输入类别也有效,但显然使用起来很糟糕。我想要的是表单中的一个简单的select元素,用于从现有类别中选择。

我必须生成<select>的代码是:

$this->add(array(
        'name' => 'Categorie',
        'type'  => 'Zend\Form\Element\Select',
        'attributes' => array(
            'options'  => $categories,
        ),
        'options' => array(
            'label' => 'Categorie',
        ),
));

从我在(非常稀疏的)ZF2文档中找到的内容,我应该使用Hydrator将数据提取到$categories变量中,但我不知道从那里去哪里

任何形式的例子或提示都会受到赞赏!

1 个答案:

答案 0 :(得分:3)

Here这是一篇关于表单的非常好的文章。

我的解决方案基于本教程,并且(几乎)运行良好。我不知道你是否为你的项目使用Doctrine,但我认为这是一个非常好的主意!

我也大量使用select元素。在给定的fieldset中,我使用这段代码为select生成值选项:

$opt= Registry::get('entityManager')->getRepository('My\Entity\Categories')
                ->getCategoriesForCombobox();
$this->get('category')->setValueOptions($opt);

如果您(计划)使用Doctrine,您应该在Doctrine文档中仔细阅读有关存储库的信息。如果您在表单中使用集合,则必须阅读关于关联的主题。