KnpSnappyBundle を使用して Pdf を生成し、Bill Entity が生成されたときに教義に位置を保存しようとしています。
そのためにタンプラーティング サービスが必要ですが、これはエンティティの内部では取得できません。
EventListener を読み込んで、それを機能させようとしました。
私のconfig.yml
services:
bill.listener:
class: MyCompany\CompanyBundle\EventListener\BillListener
tags:
- { name: doctrine.event_listener, event: onFlush }
そして私のリスナー
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);
}
}
}
}
}
私の請求書エンティティには、生成された請求書の位置を保存する setFilename 関数があります。しかし、私はそれを機能させることさえできません。