2

我在我的项目中集成了学说扩展。Timestampable 就是一个例子。但是如何使用“可上传”行为?

我读了这个文档。他们在使用部分写了关于 using $listener,但我如何获得这个变量?在我的控制器或服务中?它从何而来?

感谢您的任何建议...

4

1 回答 1

1

终于,明白了……:

代替:

'doctrine' => array(
    'eventmanager' => array(
        'orm_default' => array(
            'subscribers' => array(
                'Gedmo\Uploadable\UploadableListener',
                //...
            ),
        ),
    ),
   'driver' => array(
        // ...
    ),
),

使用这个:通过servicemanager注册可上传的监听器:

    'doctrine' => array(
    'eventmanager' => array(
        'orm_default' => array(
            'subscribers' => array(
                'doctrine_extensions.uploadable',
                //...
            ),
        ),
    ),
   'driver' => array(
        // ...
    ),
),
'service_manager' => array(
    'invokables' => array(
        'doctrine_extensions.uploadable'    => 'Gedmo\Uploadable\UploadableListener'
    )
),

然后以控制器为例,它的工作原理如下:

$uploadManager = $this->getServiceLocator()->get('doctrine_extensions.uploadable');
foreach($this->getRequest()->getFiles()->toArray() as $file) {
    $entity = new MyEntity();
    $uploadManager->addEntityFileInfo($entity, $file);

    // persist($entity) ...
}
于 2013-11-07T08:16:45.250 回答