Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-2829

Retrieve fieldName from PersistentCollection

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Invalid
    • Affects Version/s: 2.4.1
    • Fix Version/s: None
    • Component/s: ORM
    • Labels:
    • Environment:
      N/A

      Description

      Hi,

      I use a custom listener based on the one of Knp DoctrineBehavior: https://github.com/KnpLabs/DoctrineBehaviors/blob/master/src/Knp/DoctrineBehaviors/ORM/Loggable/LoggableListener.php and I would like to use $uow->getScheduledCollectionDeletions() and $uow->getScheduledCollectionUpdates() to add the modifications from manyToMany relations. (like described here: https://groups.google.com/forum/#!topic/doctrine-user/ONDh5H4hMYQ).

      So I itereate on the returned array to get a PersistentCollection from which I'm able to call:

      $col->getOwner() : to retrieve the owning entity (the entity at the owning side of the association).

      $col->getDeleteDiff() : to retrieve the entities that will be removed from the collection.

      $col->getInsertDiff() : to retrieve the entities that will be added to the collection.

      $col->getSnapshot() : to retrieve the last snapshot.

      $col->toArray() : to retrieve the current entities in the collection.

      That's good, and I can get all information about the association mapping but I can't retrieve the fieldName.

      I think it could be easily added when initializing the PersistentCollection by adding fieldName in the $assoc parameter before to call setOwner() ?

      See http://www.doctrine-project.org/api/orm/2.4/source-class-Doctrine.ORM.UnitOfWork.html#_computeChangeSet

        Activity

        Hide
        Thomas Lallement added a comment -

        In fact it's already possible by getting fieldName on after clling $col->getMapping();

        Show
        Thomas Lallement added a comment - In fact it's already possible by getting fieldName on after clling $col->getMapping();

          People

          • Assignee:
            Benjamin Eberlei
            Reporter:
            Thomas Lallement
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: