Skip to content

Loading…

DDC-2157: @HasLifecycleCallbacks does not fire events when set on @MappedSuperclass #2847

Closed
doctrinebot opened this Issue · 6 comments

2 participants

@doctrinebot

Jira issue originally created by user frederes:

I am unable to fire any of the "HasLifecycleCallbacks" when defined on a MappedSuperclass... (neither PreUpdate, PostUpdate,PrePersist, PostPersist and others)

I have even tried to put @ORM\HasLifecycleCallbacks on the child class with onPostRemove() on mapped => not working anymore

It only works when i put @ORM\HasLifecycleCallbacks and onPostRemove() both in child class "MyMappedTask"...

Is this a bug ..?

To reproduce :

<?php
namespace MyProject\Entity;

use Doctrine\ORM\Mapping as ORM;

/****
 * @ORM\MappedSuperclass
 * @ORM\HasLifecycleCallbacks
 */
class MyMappedTask
{
   /****
    * @ORM\PreRemove
    * @ORM\PostRemove
    * @ORM\PreUpdate
    * @ORM\PostUpdate
     */
    public function onPostRemove()
    {
        echo "here is never reached !";
    }
}

/****
 * @ORM\Entity(repositoryClass="MyProject\Repository\MyTaskRepository")
 * @ORM\Table()
 */
class MyTask extends MyMappedTask
{

}
@doctrinebot

Comment created by @FabioBatSilva:

code format

@doctrinebot

Comment created by @FabioBatSilva:

Hi Frederic,

It failed for all events or just for @PostRemove ?

Could you try to add a failing test case ?

Cheers

@doctrinebot

Comment created by frederes:

Hi Fabio,

1) Thank you for the "code" tag, i didn't know to do ;)

2) Is fails with all the Annotations "Pre/Post*" ...

Did you try this test case ?

Thank you

@doctrinebot

Comment created by @FabioBatSilva:

Hi Frederic,

Can't reproduce..
Could you try to change the attached test case and make it fails ?

Cheers

@doctrinebot

Comment created by frederes:

Hi Fabio,

Thank you for the test case, it is OK !

I found what the problem was :
I use Symfony2 and i have one bundle with the @MappedSuperclass entity and its callbacks (@HasLifecycleCallbacks), and another bundle with the child class (@Entity/@Table).
In that case, you must register the 2 bundles on the mappings (config.yml) otherwise it fails.
(I only registered the bundle which contains the child class but was not enough for Doctrine to understand...)

I don't know if it is a bug on Symfony2, not well documented in this case...

Thank you for all

@doctrinebot

Issue was closed with resolution "Invalid"

@beberlei beberlei was assigned by doctrinebot
@doctrinebot doctrinebot closed this
@doctrinebot doctrinebot added the Bug label
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.