2012-10-30 32 views
1

填充选择元素的形式与日期我有一个简单的一对多关系的数据库,看起来像这样:ZF2:从数据库

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

答案以及以下博客帖子包含有关开始使用ZF2,Forms和Doctrine的详细信息:http://www.michaelgallego.fr/blog/2012/07/04/new-zendform-features-explained/ –

回答

3

Here是关于表格的一篇很好的文章。

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

我也大量使用select元素。在给定的字段集,我产生了用这段代码选择值选项:

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

如果(计划)的使用原则,你应该非常小心学说文档阅读库。如果您在表单中使用集合,则关于关联的主题也是必读内容。

+0

感谢您链接我,就像一个信息一样,这篇文章很快就会更新,因为Registry-Thing真的很糟糕:)此外,在使用Doctrine时,使用起来更简单。 – Sam

+0

等不及了! –

+0

谢谢!山姆:与你现在的职位相比,是否会对实施做出重大改变? –