填充多选下拉 zend 3

大家好,我很难在表单中填充多选下拉列表。到目前为止我尝试过的是为我的表单添加工厂,如下所示


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 的新手。


函数式编程
浏览 86回答 1
1回答

元芳怎么了

在构造函数中,该行value_options' => $this->actors是错误的,因为$this->actors尚未设置。在你的工厂里你写:$form = new MovieForm(); $form->setActors($data);setActors()因此,您必须在类中声明公共方法,MovieForm该方法将负责设置选项数组。public function setActors($array){     $this->get('actors')->setValueOptions($array); }
打开App,查看更多内容
随时随地看视频慕课网APP