【问题标题】:ZF2 Form and Doctirine ErrorZF2 形式和教义错误
【发布时间】:2014-11-06 01:01:57
【问题描述】:

我尝试使用 ZF2 Form 和 Doctirine。但我收到一个错误“致命错误:未捕获的异常 'Zend\ServiceManager\Exception\InvalidArgumentException' 和消息 '$initializer 应该是可调用的。'在 C:\Projects\eperde\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php 上线”我的 Form 类路径为真。它是 Admin\Form\CategoryForm。

你能帮帮我吗?有什么问题?

public function getFormElementConfig(){

    return array(
        'initializers' => array(
            'invokables' => array(
                'CategoryForm' => 'Admin\Form\CategoryForm',
            ),
            'ObjectManagerInitializer' => function ($element, $formElements) {
                    if ($element instanceof ObjectManagerAwareInterface) {

                        $services      = $formElements->getServiceLocator();
                        $entityManager = $services->get('Doctrine\ORM\EntityManager');
                        $element->setObjectManager($entityManager);
                    }
                },
        ),
    );

}

【问题讨论】:

    标签: php zend-framework doctrine-orm zend-framework2 service-locator


    【解决方案1】:

    我认为这几乎是您想要做的:

    categoryform 创建一个别名以指向Admin\Form\CategoryForm。 添加初始化器以注入 ObjectManager。我认为工厂会是一种更优雅的方式来做到这一点!

    module.config.php(或Module::getConfig()):

    'form_elements' => array(
        'aliases' => array(
            'categoryform' => 'Admin\Form\CategoryForm',
        ),
        'initializers' => array(
            'ObjectManagerInitializer' => function ($element, $pluginManager) {
                if ($element instanceof \DoctrineModule\Persistence\ObjectManagerAwareInterface) {
                    $serviceLocator = $pluginManager->getServiceLocator();
                    $entityManager = $serviceLocator->get('Doctrine\ORM\EntityManager');
    
                    $element->setObjectManager($entityManager);
                }
            },
        ),
    ),
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      相关资源
      最近更新 更多