小编use*_*771的帖子

Symfony2 - EventListener更改onFlush上的数据

我正在尝试使用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的位置.但我甚至无法工作.

event-listener symfony doctrine-orm

4
推荐指数
1
解决办法
8619
查看次数

标签 统计

doctrine-orm ×1

event-listener ×1

symfony ×1