Hi Marcelo; yes, of course:

I'm currently using YML config instead of Annotations. I do really love to
separate metadata from Entities classes.

You have to tell doctrine to enable LifeCycleCallback event like this:

Oscar\HotelBundle\Entity\Foto:
    type:  entity
    table:  foto
    repositoryClass: Oscar\HotelBundle\Repo\FotoRepo
    id:
        id:
            type:  integer
            generator:
                strategy:  AUTO
    fields:
        titulo:
            type:  string
            length: 100
         notnull: false

    *lifecycleCallbacks:*
*        postPersist: [ uploadFile ]*


So you should have an uploadFile() method defined in the entity's class.

When you call $em->flush() Doctrine will look for events prior or post
flushing. (prePersist, postPersist, preUpdate, postUpdate, preRemove,
postRemove)

Class Foto
{
//private properties

//public getters and setters

public function uploadFile()
{
  //this is invoked after this entity is persisted.
}

}

In my case, every event is invoked properly, but preUpdate nor postUpdate;
If I would have misstyped prePersist: [ uploadFil*eIMisstypedThis* ]
the framework will thrown an exception telling me that such method doesn't
exist in the entity class; if I do the same for preUpdate, or postUpdate,
it will be ignored, like it doesn't check the method.

Regards!

2011/6/20 Marcelo Prizmic <mpriz...@gmail.com>

> Hi Oscar
> Could you post some code about how to use per or post events?
> Thanks
> Marcelo
>
>
> 2011/6/20 oscar balladares <liebegr...@gmail.com>
>
>> Hi everybody!.
>>
>> I'm using Yaml configuration for doctrine metadata.
>>
>> All others events (prePersist, postPersist, preRemove, postRemove) are
>> working properly, but not the preUpdate and PostUpdate.
>>
>> Of course, I'm just calling the 'persist' method of the $EntityManager:
>>
>> $em->persist($AlreadyInDatabaseEntityInstance);
>> $em->flush();
>>
>> The row in the database is updated actually, but the method is never
>> called.
>>
>> the easiest way to prove myself I'm not crazy, is that if the method name
>> that has been set in the metadata is not correct,
>> then when the Event is called, an exception will be thrown, i.e:
>>
>> preRemove: [ preRemoveMethod ]
>>
>> then I: $em->remove($entity)
>>
>> If the preRemoveMethod doesn't exist in the Entity class, then an
>> excepetion will be trhown.
>> In the other hand, preUpdate/postUpdate will be ignored completely. I can:
>>
>> preUpdate: [ asdfasdfaThisMethodDoesNotExistInTheEntityClassaesrseres ]
>>
>> No exception will be thrown, knowing that such method doesn't exist at
>> all.
>>
>> (It won't happen with any other event).
>>
>> What could be wrong?
>>
>> Regards!
>>
>> --
>> If you want to report a vulnerability issue on symfony, please send it to
>> security at symfony-project.com
>>
>> You received this message because you are subscribed to the Google
>> Groups "symfony users" group.
>> To post to this group, send email to symfony-users@googlegroups.com
>> To unsubscribe from this group, send email to
>> symfony-users+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/symfony-users?hl=en
>>
>
>  --
> If you want to report a vulnerability issue on symfony, please send it to
> security at symfony-project.com
>
> You received this message because you are subscribed to the Google
> Groups "symfony users" group.
> To post to this group, send email to symfony-users@googlegroups.com
> To unsubscribe from this group, send email to
> symfony-users+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/symfony-users?hl=en
>

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en

Reply via email to