无法为选择对象Zend Framework 2设置多个值选项

时间:2017-07-16 21:45:58

标签: php zend-framework

我正在尝试使用一系列选项填充Zend Framework 2中的选择对象。基本上,我试图获取所有目录并将它们设置为选项值和标签,但是当存在多个目录时,它只将一个目录写为选项值。这是我的代码:

$form = new AddPhotosForm();


foreach (glob(getcwd() . '/public/images/profile/' . $identity . '/albums/*', GLOB_ONLYDIR) as $dir) {
    $form->get('copy-from-album')->setValueOptions(array(
        array(
            'value' => basename($dir), 'label' => basename($dir)
        )
    )); 
}

当我查看该选项时,它会列出最后一个目录,而不是所有目录。我认为它覆盖了存储的值,但我不知道如何不让它发生。

以下是我的问题的屏幕截图,如果它有帮助:http://imgur.com/RbfGoIo

目录列表截图:http://imgur.com/bZQgNcW

就像我之前说的那样,它只在选择下拉菜单中显示目录测试album_2017_07_14。

任何帮助都将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

您应该将 setValueOptions 移出foreach。

$options = array();
foreach (glob(getcwd() . '/public/images/profile/' . $identity . '/albums/*', GLOB_ONLYDIR) as $dir) {
    $options[] = array(
            'value' => basename($dir), 'label' => basename($dir)
        ); 
}
$form->get('copy-from-album')->setValueOptions($options); 

问题是setValueOptions设置了select的值,并没有附加新值。