Php 自定义表单元素工厂-选项在哪里?

Php 自定义表单元素工厂-选项在哪里?,php,zend-framework2,zend-form,factory,Php,Zend Framework2,Zend Form,Factory,我正在尝试创建一个自定义表单元素,基本上一切都正常——但我希望正确地使用“name”。让我解释一下: use Application\Form\Element\Custom; class CustomForm extends Form { public function init(){ $this->add([ 'name' => 'themagicname', 'type' => Custom::

我正在尝试创建一个自定义表单元素,基本上一切都正常——但我希望正确地使用“name”。让我解释一下:

use Application\Form\Element\Custom;

class CustomForm extends Form
{
     public function init(){
         $this->add([
            'name' => 'themagicname', 
            'type' => Custom::class,
         ]);
     }
}
我有一个实例化自定义元素的表单,自定义元素在我的
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”。配置阵列如何运送到工厂?我尝试了
mutableCreationOptions接口
,但它似乎不适用于这里


谢谢你的指导。

我不太清楚你所说的“在形式层面”是什么意思。您可以使用
$form->add(array(…)
,而不是使用
init()
,在工厂内将表单元素添加到表单中。您找到如何从工厂内访问自定义表单的参数了吗?