为了账号安全,请及时绑定邮箱和手机立即绑定

填充多选下拉 zend 3

填充多选下拉 zend 3

PHP
函数式编程 2023-09-22 16:58:10
大家好,我很难在表单中填充多选下拉列表。到目前为止我尝试过的是为我的表单添加工厂,如下所示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);
}


查看完整回答
反对 回复 2023-09-22
  • 1 回答
  • 0 关注
  • 76 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信