我有一个简单的一对多关系数据库,如下所示:
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
变量中,但我不知道从那里去哪里
任何形式的例子或提示都会受到赞赏!
答案 0 :(得分:3)
Here这是一篇关于表单的非常好的文章。
我的解决方案基于本教程,并且(几乎)运行良好。我不知道你是否为你的项目使用Doctrine,但我认为这是一个非常好的主意!
我也大量使用select元素。在给定的fieldset中,我使用这段代码为select生成值选项:
$opt= Registry::get('entityManager')->getRepository('My\Entity\Categories')
->getCategoriesForCombobox();
$this->get('category')->setValueOptions($opt);
如果您(计划)使用Doctrine,您应该在Doctrine文档中仔细阅读有关存储库的信息。如果您在表单中使用集合,则必须阅读关于关联的主题。