我在我的项目中集成了学说扩展。Timestampable 就是一个例子。但是如何使用“可上传”行为?
我读了这个文档。他们在使用部分写了关于 using $listener
,但我如何获得这个变量?在我的控制器或服务中?它从何而来?
感谢您的任何建议...
终于,明白了……:
代替:
'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) ...
}