Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-2297

Add ConstraintException for parent row

    Details

    • Type: New Feature New Feature
    • Status: Resolved
    • Priority: Trivial Trivial
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: ORM
    • Labels:
      None

      Description

      Currently there is no constraint check for entities that depends another one.
      I always check the dependencies using repository. Something like this:

      $childRepository = $em->getRepository('Child');
      $parent = $em->getReference('app:Parent', $id);
      $children = $childRepository->findBy(array('parent' => $parent));
      
      if ($children) {
          throw new Exception('You can not delete this record. There are records related');
      }
              
      $em->remove($parent);
      $em->flush();
      

      This exception could be thrown in $em->flush(); or could look like:

       
      try {
          $parentEntity = $em->gerReference('ParentEntity', $id);
          $em->remove($parentEntity);
          $em->flush();
      catch (SomeORMNamespace\ConstraintException $e) {
          echo $e->getMessage(); //outs: You cannot remove this entity. There is another one related.
      }
      

      I think this functionality could be implemented through metadata on any sides of the relationship or on the @Entity mapping.

      @Entity(children={'Child'}) //this is not a good attr name =)
      class Parent {}
      

      I know that is more app business logic related, but is it possible to implement this feature in next releases?

        Activity

          People

          • Assignee:
            Benjamin Eberlei
            Reporter:
            Daniel Lima
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: