我正在尝试创建一个自定义表单元素,从根本上说一切正常 - 但我想正确地引入'名字'。让我解释一下:
use Application\Form\Element\Custom;
class CustomForm extends Form
{
public function init(){
$this->add([
'name' => 'themagicname',
'type' => Custom::class,
]);
}
}
我有一个实例化Custom元素的表单,自定义元素在我的module.config.php
中映射为:
use Application\Form\Element\Custom;
use Application\Factory\Form\Element\CustomFactory;
return [
//...
'form_elements' => [
'factories' => [
Custom::class => CustomFactory::class,
],
],
//...
];
工厂看起来像这样,并被正确解雇:
class CustomFactory implements Factory
{
public function createService( ServiceLocatorInterface $serviceLocator )
{
/**
* @var \Doctrine\Common\Persistence\ObjectRepository $userRepository
* @var \Zend\InputFilter\InputFilterPluginManager $serviceLocator
*/
// bunch of factory-ish things here
return new Custom( 'helpppp', ... );
}
}
现在的难题是:在我写“helpppp”的地方,理想情况下,在表单级别创建期间传递的是“themagicname”。怎么配置阵列,运到工厂?我已经尝试了MutableCreationOptionsInterface
,但它似乎不适用于此。
感谢您的指导。