4

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 関数があります。しかし、私はそれを機能させることさえできません。

4

1 に答える 1