大家好,我很难在表单中填充多选下拉列表。到目前为止我尝试过的是为我的表单添加工厂,如下所示class MovieFormFactory{ public function __invoke(ContainerInterface $container, $requestedName, array $options = null) { $entityManager = $container->get('doctrine.entitymanager.orm_default'); $actors = $entityManager->getRepository(Actor::class)->findAll(); $form = new MovieForm(); $form->setActors($data); return $form; }}这是我在 module.config.php 中注册的工厂 'form_elements' => [ 'factories' => [ Form\MovieForm::class => Form\Factory\MovieFormFactory::class ] ],但似乎没有任何作用,我无法在创建电影时显示我的演员,也无法在编辑电影时显示选定的演员,有人可以在这里指导我吗?我是 zend 的新手。
1 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
在构造函数中,该行value_options' => $this->actors
是错误的,因为$this->actors
尚未设置。在你的工厂里你写:
$form = new MovieForm(); $form->setActors($data);
setActors()
因此,您必须在类中声明公共方法,MovieForm
该方法将负责设置选项数组。
public function setActors($array){ $this->get('actors')->setValueOptions($array); }
- 1 回答
- 0 关注
- 76 浏览
添加回答
举报
0/150
提交
取消