Domanda

Ho integrato le estensioni della dottrina nel mio progetto. Timestamplable funziona come esempio. Ma come usare il comportamento "Caricalo"?

Ho letto questo doc. Stanno scrivendo nel Parte di utilizzo sull'uso $listener, ma come ottengo questa variabile? Nel mio controller o servizio? Da dove viene?

Grazie per qualsiasi consiglio ...

È stato utile?

Soluzione

Finalmente, ho capito ...:

invece di:

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

Usa questo: Registra l'ascoltatore caricato tramite 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'
    )
),

Quindi nel controller come esempio, funziona in questo modo:

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

    // persist($entity) ...
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top