大家好,我很難在表單中填充多選下拉列表。到目前為止我嘗試過的是為我的表單添加工廠,如下所示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 關注
- 110 瀏覽
添加回答
舉報
0/150
提交
取消