Я использую Symfont RC5 и пытаюсь запустить прослушиватель событий prePersist
.
В app/config/config.yml
У меня есть: -
services:
recordmanagement:
class: FNQITServices\BMBundle\Listener\RecordManagement
tags:
- { name: doctrine.event_listener, event: prePersist }
И я создал класс src/FNQITServices/BMBundle/Listener/RecordManagement.php
: -
<?php
namespace FNQITServices\BMBundle\Listener;
use Doctrine\ORM\Event\LifecycleEventArgs;
use FNQITServices\BMBundle\Entity\Elections;
use FNQITServices\BMBundle\Entity\People;
class RecordManagement
{
public function prePersist(LifecycleEventArgs $args)
{
`echo "amibeingcalled" > /tmp/test`;
$entity = $args->getEntity();
$entityManager = $args->getEntityManager();
// perhaps you only want to act on some "Product" entity
if ($entity instanceof Elections) {
$person = $this->getDoctrine()
->getRepository('FNQITServicesBMBundle:People')
->find(2);
$entity->setCreator($person);
}
}
}
Но событие не срабатывает во время вставки. т.е. файл /tmp/test
не создается.
- Я заметил, что есть
kernel.event_listener
, и я заметил, что это было kernel.listener
несколько версий назад
- Я попробовал различные комбинации атрибутов 'tags' в конфигурации.
- Я отключил аннотации жизненного цикла, которые у меня были в организации Выборов (в случае возникновения конфликта)
- Я посмотрел в журналах консоли события, чтобы попытаться найти упоминание о проблеме
Я использую CRUD Сонаты. Не уверен, если это что-то меняет.