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

时间:2015-02-12 18:22:34

标签: php zend-framework2 zend-form factory

我正在尝试创建一个自定义表单元素,从根本上说一切正常 - 但我想正确地引入'名字'。让我解释一下:

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,但它似乎不适用于此。

感谢您的指导。

0 个答案:

没有答案