我正在尝试使用KnpSnappyBundle生成一个Pdf,并在生成我的Bill Entity时保存doctrine中的位置.
我需要那个tamplating服务,我无法进入实体.
我读入了EventListener并试图让它工作.
我的config.yml
services:
bill.listener:
class: MyCompany\CompanyBundle\EventListener\BillListener
tags:
- { name: doctrine.event_listener, event: onFlush }
Run Code Online (Sandbox Code Playgroud)
而我的倾听者
namespace MyCompany\CompanyBundle\EventListener;
use Doctrine\ORM\Event\OnFlushEventArgs;
class BillListener
{
public function onFlush(OnFlushEventArgs $args)
{
$em = $args->getEntityManager();
$uow = $em->getUnitOfWork();
foreach ($uow->getScheduledEntityInsertions() as $insertions) {
foreach ($insertions as $entity) {
if ($entity instanceof Bill) {
$entity->setFilename("test.pdf");
$md = $em->getClassMetadata(get_class($entity));
$uow->recomputeSingleEntityChangeSet($md, $entity);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的Bill Entity有一个setFilename函数,我想保存生成的Bill的位置.但我甚至无法工作.