2013-11-06 4 views
2

Я объединил доктрины-расширения в моем проекте. В качестве примера работает Timestampable. Но как использовать «Загружаемое» -обслуживание?doctrine-extensions Загружаемый, как использовать в Zend Framework 2?

Я читал это doc. Они пишут в usage-part об использовании $listener, но как мне получить эту переменную? в моем контроллере или службе? От куда это?

спасибо за любые советы ...

ответ

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) ... 
}