Not 100% sure whether I understand the question, but maybe this can help? http://doctrine-orm.readthedocs.org/en/latest/cookbook/resolve-target-entity-listener.html
Only then you should 'at runtime' determine which Entity implements the interface exactly and process/load that one appropriately. Would be nice if you could share your findings ;) Cheers! On 3 February 2014 16:50, Josh Buckley <[email protected]> wrote: > I'm creating an entity class which represents a MenuItem. This can have a > one-to-one relation with any class implementing SluggableInterface. > > As the MenuItem should be able to relate to any SluggableInterface class > (existing and future), I cannot specify a normal doctrine relation as there > isn't a specific related entity. > > I've come up with some possible solutions, but they have drawbacks: > > 1. > > Create an ObjectReference entity to hold the class name and id of the > related object. This class would then have a getObject() method to > construct and return the necessary object. *The drawback here is you > can't (cleanly, at least) access doctrine from within the entity.* > 2. > > Create an object_reference type to convert the object to a string > containing the class name and id. *The issue again is accessing > doctrine in the Type class to retrieve the object.* > 3. > > I've not tried this one yet, but create a class listening to doctrine > events, then checking for fields with a custom annotation, and do the > Object->String and vice-versa conversion there. > > Before I start investigating #3, does anyone know of a "proper" or > alternative way to do this? > > -- > You received this message because you are subscribed to the Google Groups > "doctrine-user" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/doctrine-user. > For more options, visit https://groups.google.com/groups/opt_out. > -- You received this message because you are subscribed to the Google Groups "doctrine-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/doctrine-user. For more options, visit https://groups.google.com/groups/opt_out.
