New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DDC-116: array_combine error when using combined Primary Key #1761
Comments
Comment created by nicokaiser: I attached a patch for Doctrine\Orm\Id\Assigned, there seems to be a runaway line which makes the class add each element twice... |
Comment created by romanb: Whoops. Thanks for finding this! Does it fix this issue? I will need to add a testcase to the suite. |
Comment created by nicokaiser: Does not entirely fix it: if the $value is empty, too few elements are added again. |
Comment created by romanb: I think the isset() is correct. That way the $identifier array remains empty if the PK is null and later if ( ! $identifier) evaluates to false on the empty array and raises the exception. If we remove the isset() we would "accept" PKs with null values. But it might be better to do:
|
Comment created by romanb: I will fix this and add some new tests for it. |
Comment created by romanb: Should be fixed now. |
Issue was closed with resolution "Fixed" |
Imported 1 attachments from Jira into https://gist.github.com/b9db7c4a3b7ef6902974 |
Jira issue originally created by user nicokaiser:
I use a combined Primary Key for a User's Phonenumber entity (to match our existing DB model). The key is combined from a "Type" field and a "userId" field that references the User table.
To mark the (referenced!) userId field and the type field as PK, I need to add "userId" to the model (adding @id to User does not work). This works well when generating Users and Phonenumbers - but the delete command breaks:
{panel}
PHP Warning: array_combine(): Both parameters should have an equal number of elements in ..../lib/Doctrine/ORM/Persisters/StandardEntityPersister.php on line 274
PHP Catchable fatal error: Argument 2 passed to Doctrine\DBAL\Connection::delete() must be an array, boolean given, called in ..../lib/Doctrine/ORM/Persisters/StandardEntityPersister.php on line 275 and defined in ..../lib/Doctrine/DBAL/Connection.php on line 372
{panel}
Entities:
http://pastebin.com/d51e021e2
Test code:
http://pastebin.com/m51d1f497
The text was updated successfully, but these errors were encountered: