Kdyby\Doctrine removeEventListener : Undefined index

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
duskohu
Člen | 778
+
0
-

Caute, Neviete mi poradit mam listener na onFlush a v nom sa snazim editovat dalsie entity. podla tochto navodu som si chcel odregistrovat lisener urobit zmenu ktoru potrebujem a znovu ho zaregistrovat. Problem je v tom ze mi to nadava: Undefined index: Doctrine\ORM\Event::onFlush tu

Ja mam asi takyto listener, neviete mi poradit co robim zle?

<?php
namespace Nas\CmsModule\Listeners;

use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\OnFlushEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Query;
use Kdyby\Events\Subscriber;
use Nas\CmsModule\Model\BasePost;
use Nas\CmsModule\Model\Route;
use Nas\CmsModule\Model\RouteRepository;

class RouterListener implements Subscriber {

	/**
	 * Specifies the list of events to listen
	 * @return array
	 */
	public function getSubscribedEvents() {
		return array(
			Events::onFlush
		);
	}

	/**
	 * @param OnFlushEventArgs $args
	 */
	public function onFlush(OnFlushEventArgs $args) {
		/** @var \Kdyby\Doctrine\EntityManager $em */
		$em = $args->getEntityManager();
		$uow = $em->getUnitOfWork();

		// Remove listener
		$eventManager = $em->getEventManager();
		if ($eventManager) {
			$eventManager->removeEventListener(array(Events::onFlush), $this);
		}

		// Process
		foreach ($uow->getScheduledEntityUpdates() as $key => $entity) {
			if ($entity instanceof Route) {
				$changeSet = $uow->getEntityChangeSet($entity);

				if (array_key_exists('url', $changeSet) || array_key_exists('language', $changeSet)) {
					$this->replaceChildWhenUpdate($entity, $em);
				}
			}
		}

		// Add listener back again
		if ($eventManager) {
			$eventManager->addEventListener(array(Events::onFlush), $this);
		}
	}

}

ali
Člen | 342
+
0
-

Smazal jsi cache? Doctrine listenery jsou zacachovane

Tedka koukam ze ho odebiras a pridavas za behu..

Editoval ali (30. 3. 2017 10:59)