[DDC-2148] Many-to-many not working with interface Created: 16/Nov/12 Updated: 22/Nov/12 Resolved: 22/Nov/12 |
|
| Status: | Resolved |
| Project: | Doctrine 2 - ORM |
| Component/s: | DQL |
| Affects Version/s: | 2.3 |
| Fix Version/s: | 2.2 |
| Type: | Bug | Priority: | Major |
| Reporter: | Moritz Kraft | Assignee: | Benjamin Eberlei |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | dql | ||
| 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... 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. |
| Comments |
| Comment by Marco Pivetta [ 16/Nov/12 ] |
|
"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 |
| Comment by Moritz Kraft [ 16/Nov/12 ] |
|
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. |
| Comment by Marco Pivetta [ 16/Nov/12 ] |
|
Moritz Kraft yes, but it is not a blocker for the next release |
| Comment by Moritz Kraft [ 16/Nov/12 ] |
|
Ah right, yeah, that makes sense. |
| Comment by Moritz Kraft [ 22/Nov/12 ] |
|
Fixed in 1b5f051 - thanks Benjamin! |
| Comment by Moritz Kraft [ 22/Nov/12 ] |
|
Fixed in 2.3 branch, backported to 2.2 as well |