Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-2148

Many-to-many not working with interface

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.3
    • Fix Version/s: 2.2
    • Component/s: DQL
    • Labels:
    • Environment:
      Linux, PHP 5.3.10, Symfony 2.2

      Description

      First off, here's a pastie with all the code and mappings involved, and a stacktrace: http://pastie.org/5372087

      Not sure if this a bug or not, but I think that according to the docs this should work - in a vendor bundle I have an entity defining a unidirectional many-to-many relation to an interface: the entity is Group and defines a many-to-many relation to a UserInterface, which is resolved correctly in the app configuration (as the many-to-one relations using it in the other entities of this vendor bundle work fine).

      I'm going by these docs:

      http://symfony.com/doc/master/cookbook/doctrine/resolve_target_entity.html

      However, when adding a user to a group, I'm getting a weird error:

      An exception occurred while executing 'INSERT INTO acme_group_user (group_id, user_id) VALUES (?, ?)' with params

      {"1":2,"2":1,"3":2,"4":1}

      :

      SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

      For some reason it's adding 4 parameters to the statement instead of 2.

      Oddly enough, the query generation works perfectly fine when I replace the interface in the mapping with the actual final entity. But that wasn't the point of the exercise... I need to use the interface there.

      Also, in other entities in that GroupBundle which are referencing the UserInterface using a different relation type, i.e. many-to-one, the relations work perfectly fine.

      The schema validates as well, using doctrine:schema:validate in the console.

        Activity

        Hide
        Marco Pivetta added a comment - - edited

        "many-to-many TO a mapped superclass"? I don't think relations TO mapped superclasses are supported in any way... A mapped superclass should never appear in a `targetEntity` mapping.

        Could you please re-formulate the description of the issue? There is no mapped superclass in your examples

        Show
        Marco Pivetta added a comment - - edited "many-to-many TO a mapped superclass"? I don't think relations TO mapped superclasses are supported in any way... A mapped superclass should never appear in a `targetEntity` mapping. Could you please re-formulate the description of the issue? There is no mapped superclass in your examples
        Hide
        Moritz Kraft added a comment - - edited

        You are of course right. Edited the issue description/title.

        It is a blocker for us, btw., not minor - being able to use a many-to-many relation there is rather central to the code of our app. I'm not seeing a workaround, easy or otherwise.

        Show
        Moritz Kraft added a comment - - edited You are of course right. Edited the issue description/title. It is a blocker for us, btw., not minor - being able to use a many-to-many relation there is rather central to the code of our app. I'm not seeing a workaround, easy or otherwise.
        Hide
        Marco Pivetta added a comment -

        Moritz Kraft yes, but it is not a blocker for the next release Will restore prio.

        Show
        Marco Pivetta added a comment - Moritz Kraft yes, but it is not a blocker for the next release Will restore prio.
        Hide
        Moritz Kraft added a comment -

        Ah right, yeah, that makes sense. Thank you!

        Show
        Moritz Kraft added a comment - Ah right, yeah, that makes sense. Thank you!
        Hide
        Moritz Kraft added a comment -

        Fixed in 1b5f051 - thanks Benjamin!

        Show
        Moritz Kraft added a comment - Fixed in 1b5f051 - thanks Benjamin!
        Hide
        Moritz Kraft added a comment -

        Fixed in 2.3 branch, backported to 2.2 as well

        Show
        Moritz Kraft added a comment - Fixed in 2.3 branch, backported to 2.2 as well

          People

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

            Dates

            • Created:
              Updated:
              Resolved: